私のプログラムは Eclipse で正常に動作します。ただし、実行可能な jar としてエクスポートしようとすると、ダブルクリックしても jar が開きません。Eclipse で .app に直接エクスポートする方法はありますか?
4 に答える
gradle -macappbundleプラグインは、これを行う方法を知っている最も簡単な方法です。それはあなたのビルドシステムにフックし、あなたのためにを生成.app
します。
独自のソリューションを展開したい場合は、AppleのOS X用Javaデプロイメントオプションを使用すると、これを行うために知っておく必要のあるすべての情報が得られます。基本的に、a.app
はJARを含む単なるフォルダーであり、いくつかのXMLファイルがクラスパスなどを提供します。あなたはすべての詳細についてそのガイドを読むことができます。
いいえ。アプリには他にも多くのものが含まれています。jar を実行する場合は、JRE によって開かれるように何かを設定する必要があります。それはお勧めしません。
.app
JAR ファイルと関連リソースを取得してバンドルを構築できる (少なくとも) 2 つの別個の Ant タスクがあります。java.netのappbundler タスク.app
は、Oracle Java 7 JRE で実行されるバンドルを生成し、jarbundler タスクは、Apple が提供する Java 6 で実行されるバンドルを生成します。しかし、どちらのタスクも.app
、Java 6 と 7 の両方で実行できる を生成しません。これは、Oracle (7) と Apple (6) の Java が、 のランチャー スタブから JVM を生成するために根本的に異なる API を使用するため.app
です。Java アプリを Mac App Store にリリースできるようにするには、Java 7 を使用して JRE のコピーを.app
bundle ( appbundler があなたのためにできること)。逆に、アプリを Mac OS X バージョン 10.6 以前で実行できるようにする場合は、Java 6 を使用する必要があります。
他の回答の 1 つに対するあなたのコメントは、アプリにネイティブ ライブラリが必要であることを示唆しています。このライブラリを.app
JAR とともにバンドル内に配置する必要があります。Java 6 バンドル (JAR ファイルと同じ場所) を取得する必要があります。Java 7 バンドルの場合は、ファイルセットでライブラリを指定する.jnilib
と、appbundler ( ) によって適切な場所にコピーされます。Contents/Resources/Java
<librarypath>
Contents/MacOS