我最近阅读了关于Pushing Pixels的博客文章,其中介绍了如何使用纯Java实现原生透明度和半透明度。所需的类驻留在com.sun.awt上,即com.sun.awt.AWTUtilities。
我想知道如何将所需的类(不仅仅是这个)包含到我的发行版中,因为只有安装了jdk并且通过那里启动jvm时类才可用。因此,我的程序的用户将没有运行我的程序所需的类。
有什么想法吗?
答案 0 :(得分:3)
AWTUtilities,因为软件包暗示是一个实现包,可能会发生变化。我不认为从技术和法律角度分配课程是个好主意。
从技术上讲,com.sun.awt.AWTUtlities必然会对其他类和内部实现细节产生未知的依赖关系,特定于Java 6 u10及更高版本(the release in which it appeared)。这个未知依赖角度必然会保留水,因为绘画和图形也需要在某些原生实现中进行更改。
其次,这在Java 7中必然会发生变化,因为唯一的发布Sun尚未发布支持透明性的java.awt.AWTUtilities,因为它们不会对主要版本中的公共API进行更改
IANAL,但我认为在没有经过律师的情况下参与重新分发软件的行为并不明智。此外,客户不喜欢在他们的系统中不支持部署任何软件的想法。
<强>更新强>
从6u10开始,所有Sun JRE(不仅仅是JDK)都带有com.sun.awt.AWTUtilities,因此最简单的操作方法是让您的用户在他们的系统上使用Java 6u10或更高版本,以及用于您的应用程序正常处理任何结果异常。