2011-09-13 13 views
0

私はトップクラスのJavaを学びました。なぜなら、それはクロスプラットフォームのアプリケーション(Pythonでも、私はすでにそれを知っています)を作る最も簡単な方法だからです。私はJOGLでhello worldプログラムを書こうとしました。私はそれを書いて、それは私のEclipseとNetBeansで完全に動作しますが、JARを構築して実行しようとしているときに、java.library.pathにJOGlがないと言います。私は-D引数でライブラリパスを渡そうとしましたが、うまくいきます! 質問:追加の引数なしで実行する方法はありますか?ダブルクリックで-DキーのないJOGLアプリでjarを実行するには?

ありがとうございました。

答えて

2

プロジェクト内にマニフェストファイル(META-INF/MANIFEST.MF)を作成する必要があります(すでにプロジェクトツリーに埋め込んでいる可能性があります)。 そしてそこには、例えば、あなたのクラスパスを指定することができます。

Class-Path: lib/jogl.jar lib/other_lib.jar 

を次に、このファイルがjarファイルになっていることを確認してください。詳細についてはhttp://download.oracle.com/javase/tutorial/deployment/jar/manifestindex.html

+0

は、この試みのlib/libにjogl.jar/gluegen-rt.jarのLIB/jinput。 jar lib/joal.jar \ 「スレッド内の例外」main「java.lang.UnsatisfiedLinkError:java.library.pathのjoglがありません」と言います。 WTF? – HiTECNOLOGYs

+0

私は知らないので、joglはネイティブライブラリを持っているので少しトリッキーです。ダブルクリックでのみ実行したい場合は、常に 'java -D ...'コマンドで.bat/.shスクリプトを実行できます – polypiel

+0

JOGLは厄介ではなく、OpenGLのJavaバインディングは何らかのネイティブコードでアクセスする必要がありますOpenGLにしかし、JOGL 2.0では、jogl.all.jarとgluegen-rt.jarをクラスパスに配置し、ネイティブライブラリを含むJARを同じディレクトリに配置するだけで済みます。その後、JOGL 2.0はJavaライブラリパスを設定することなく自動的にロードします。 – gouessej

2

ユーザーに展開するときは、アプリケーションを展開します。 Java Web Startを使用してください。これにより、ネイティブをエンドユーザー向けに「ワンクリック」インストールし、プラットフォーム間でネイティブダウンロードをパーティション化することもできます。サポートされるOSの上で、アイコンでデスクトップショートカットやメニュー項目 -

Is there is a way to run it without any additional args? With only double click.

はJWSは、デスクトップとの統合を提供しています。

+1

良い答え。 「ファットJAR」アプローチには数多くの制限があります。 Java Webstartの方がはるかに優れています。 – gouessej

1

JarSpliceのようなツールを使用して上記を簡単に行うことができます。 guiにちょうどいい、それはかなり簡単です。アプリケーションはネイティブをあなたのためにjarファイルに入れます。jarlアプリケーションを実行するにはjarファイルをダブルクリックします。

+0

JarSpliceは2014年1月からJogAmp APIによって正式にサポートされていますが、回答を投稿したとき(2011年9月)はそうではありませんでした。 – gouessej

0

JOGL 2.0では、Javaライブラリパスを設定する必要はなくなりました。クラスパス(jogl-all.jarとgluegen-rt.jarはクラスパスになければなりません)を設定し、ネイティブライブラリを含むJARファイルを使用するディレクトリ(アプリケーション、アプレット、Java Webスタートなど)。次に、JOGL 2.0はネイティブライブラリを自動的に読み込みます。 クラスパス\ game.ProjectEvolve: マニフェスト-バージョン:1.0 \ 作成したバイ:HiTECNOLOGYs メインクラス\

関連する問題