如何分发AWTUtilities

我最近阅读了关于Pushing Pixels的博客文章,描述了如何使用纯Java实现原生透明度和半透明度。 所需的类驻留在com.sun.awt上,即com.sun.awt.AWTUtilities。

我想知道如何将所需的类(不仅仅是这个)包含到我的发行版中,因为只有安装了jdk并且通过那里启动jvm时类才可用。 因此,我的程序的用户将没有运行我的程序所需的类。

有任何想法吗?

正如软件包所暗示的那样,AWTUtilities是一个实现包,可能会发生变化。 我不认为从技术和法律角度分配课程是个好主意。

从技术上讲,com.sun.awt.AWTUtlities必然会对其他类和内部实现细节具有未知的依赖性,特定于Java 6 u10及更高版本(它出现的版本 )。 这种未知的依赖角必然会保留水,因为绘画和图形也需要在某些原生实现中进行更改。

其次,这在Java 7中必然会发生变化,因为Sun发布的唯一版本没有发布支持透明性的java.awt.AWTUtilities,因为它们不会对主要版本中的公共API进行更改。

IANAL,但我认为在没有经过律师的情况下参与重新分发软件的行为并不明智。 此外,客户不喜欢在他们的系统中不支持部署任何软件的想法。

更新

从6u10开始,所有Sun JRE(不仅仅是JDK)都带有com.sun.awt.AWTUtilities,因此最简单的操作方法是让您的用户在他们的系统上安装Java 6u10或更高版本,并让您的应用程序处理任何结果exception优雅。