我最近读了一篇关于pure的博客文章,其中描述了如何用纯Java实现本机透明度和半透明性。所需的类驻留在com.sun.awt上,即com.sun.awt.AWTUtilities。
我想知道如何才能在我的发行版中包含所需的类(而不仅仅是这个类),因为这些类只有在安装了jdk并通过jdk启动jvm时才可用。因此,我的程序的用户将没有运行我的程序所需的类。
有什么想法吗?
发布于 2009-09-13 05:06:02
正如该包所暗示的那样,AWTUtilities是一个实现包,可能会发生变化。我不认为同时从技术和法律的角度分发这个类是个好主意。
从技术上讲,特定于Java6 u10及更高版本(the release in which it appeared)的com.sun.awt.AWTUtlities对其他类和内部实现细节的依赖可能是未知的。这种未知的依赖角度肯定是成立的,因为绘画和图形也需要在一些本机实现中进行更改。
其次,这肯定会在Java7中发生变化,因为Sun唯一没有发布支持透明度的java.awt.AWTUtilities的版本是因为他们不会对公共API进行更改,除非是在主要版本中。
IANAL,但我不认为没有经过律师的许可就从事重新分发软件的行为是明智的。此外,客户不喜欢在其系统中部署任何不受支持的软件的想法。
更新
从6u10开始,所有Sun (不仅仅是JDK)都带有com.sun.awt.AWTUtilities,因此最简单的做法是让用户在其系统上安装Java6u10或更高版本,并让应用程序优雅地处理任何产生的异常。
https://stackoverflow.com/questions/1416869
复制相似问题