質問

最近、純粋な Java でネイティブの透明性と半透明性を実現する方法について説明した、Pushing Pixels に関するブログ投稿を読みました。必要なクラスは com.sun.awt、つまり com.sun.awt.AWTUtilities に存在します。

クラスは、jdkがインストールされていて、そこからjvmを開始する場合にのみ使用できるため、必要なクラス(これだけでなく)をディストリビューションにどのように含めることができるか疑問に思っていました。したがって、私のプログラムのユーザーは、私のプログラムを実行するために必要なクラスを持っていません。

何か案は?

役に立ちましたか?

解決

AWTUtilities は、パッケージが示すように実装パッケージであり、変更される可能性があります。技術的にも法律的にも授業を分散するのは得策ではないと思います。

技術的には、com.sun.awt.AWTUtlities には、Java 6 u10 以降に特有の、他のクラスや内部実装の詳細に対して未知の依存関係がある可能性があります (それが登場したリリース)。これ 不明な依存関係 ペイントやグラフィックスではネイティブ実装の一部も変更する必要があるため、角度には水を保持する必要があります。

第 2 に、これは Java 7 で変更されるはずです。Sun が透過性をサポートする java.awt.AWTUtilities のリリースを行っていない唯一のリリースは、メジャー リリース以外ではパブリック API に変更を加えないためです。

IANAL ですが、私は弁護士を通さずにソフトウェアを再配布する行為に携わるのが賢明だとは思いません。さらに、顧客は、サポートされていないソフトウェアをシステムに導入するという考えを好みません。

アップデート

6u10 以降のすべての Sun JRE (JDK だけでなく) には com.sun.awt.AWTUtilities が付属しているため、最も簡単なアクションは、ユーザーのシステムに Java 6u10 以降をインストールし、アプリケーションで任意の Java 6u10 以降を処理できるようにすることです。結果として生じる例外は正常に処理されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top