3

Java 1.6 ベースのクロスプラットフォーム (Mac OS X、Win、および Linux) アプリケーションを開発しています。Mac OS プラットフォームとの統合を改善するには、Mac OS X 固有のクラスを使用する必要があります。これらのクラスは、他のプラットフォームの JDK または JRE では利用できず、アプリケーションと共に配布することもできません。

私の質問は、2 つの異なるバージョンを維持することなく、Mac OS X と Windows プラットフォームの両方でコードをコンパイル可能に保つため の最良の戦略は何ですか?

4

2 に答える 2

3

ClassLoaders には遊びがあります。プラグイン開発でも非常に似ていますが、少なくとも頻繁に使用されます。

メインのクロス プラットフォーム アプリケーションを構築します インターフェイスを宣言します 利用可能なプラグインをロードする「プラグイン ローダー」を作成します macosx では mac の 1 つ、windows では windows の 1 つです。

3 つのプラグインの開発とビルド: mac、linux、windows

-実行時にクラスローダーと自動リンクします。

于 2013-01-17T07:57:27.077 に答える
1

すべての使用をリフレクションに制限しない限り、これらのクラスを使用するコードをコンパイルすることはできないと思います。そして、それはおそらく、価値があるよりもはるかに多くの問題につながります.

Apple 固有の部分を別のアーティファクト/プロジェクトに抽出し、Mac でのみコンパイルできます。そして、メイン プロジェクトで事前定義された (共有) インターフェイスを介して参照します。このようにして、リフレクションを介して Apple 固有のコードを読み込もうとするだけで、それが機能しない場合は、ダミーの実装を使用できます。

于 2013-01-17T07:54:54.537 に答える