0

私は周りを見回しましたが、これを理解できないようです。IntelliJ IDEA で使用するために JOGL (win64 上) をセットアップしようとしていますが、何をしてもうまくいかないようです。これまでに行ったことは次のとおりです。

  1. これをダウンロードしました
  2. これらのファイルをすべて独自のフォルダー (JOGL と呼ばれる) に移動しました。
    • gluegen-rt.jar
    • jogl-all.jar
    • gluegen-java-src.zip
    • jogl-java-src.zip
    • グルーゲン-rt.dll
    • jogl_desktop.dll
    • nativewindow_awt.dll
    • nativewindow_win32.dll
    • newt.dll
  3. プロジェクト構造に移動し、JOGL フォルダーをライブラリとしてモジュールに追加しました
  4. import net.java.games.jogl.*;import: addedでモジュールを実行しようとしました

System.loadLibrary("jogl");また、インポートを使用せずにコード行を実行しようとしましたが、機能しませんでした。どんな助けでも大歓迎です。

これらは私が従ったガイドです:

編集:

CrazyCoder の要求に従ってimport net.java.games.jogl.*;、私が言及した でコンパイルしようとすると、次のようになります。

java: C:\....\Main.java:2: package net.java.games.jogl does not exist


System.loadLibrary("jogl");インポートを削除し、行を挿入して実行しようとすると、次のようになります。

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jogl in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at core.Main.main(Main.java:15)

奇妙なことに、コマンドを使用してコマンドラインで実行しようとすると、次のようjava -cp "/cygdrive/c/apps/JOGL/" core.Mainになります。

java.lang.NoClassDefFoundError: core/Main
Caused by: java.lang.ClassNotFoundException: core.Main
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: core.Main.  Program will exit.
Exception in thread "main"

で実行しない場合は-cp "/cygdrive/c/apps/JOGL/"、正常に動作します (たとえば、実際に実行して IDE と同じ結果が得られますが、同じ方法で失敗します)。


以下は私のモジュールの依存関係のスクリーンショットです(JOGLは私が上で述べたものです):

読みやすくするためにすべてを分離しようとしましたが、わかりにくい場合は申し訳ありません。

4

2 に答える 2

3

IDEA を使用している場合は、IDEA が優れた Maven サポートを提供しているため、これを Maven プロジェクトとして行うのが理にかなっています。pom.xml依存関係をMaven Central から入手できるように貼り付けるだけです。

<dependencies>
  <dependency>
    <groupId>org.jogamp.gluegen</groupId>
    <artifactId>gluegen-rt-main</artifactId>
    <version>2.0.2</version>
  </dependency>
  <dependency>
    <groupId>org.jogamp.jogl</groupId>
    <artifactId>jogl-all-main</artifactId>
    <version>2.0.2</version>
  </dependency>

  <dependency>
    <groupId>org.jogamp.jocl</groupId>
    <artifactId>jocl</artifactId>
    <version>2.0.2</version>
  </dependency>
  <dependency>
    <groupId>org.jogamp.jocl</groupId>
    <artifactId>jocl-main</artifactId>
    <version>2.0.2</version>
  </dependency>

  <!-- audio -->
  <dependency>
    <groupId>org.jogamp.joal</groupId>
    <artifactId>joal</artifactId>
    <version>2.0.2</version>
  </dependency>
</dependencies>

これは、私が JOGL で遊ぶときに使用するもので、うまく機能します。

于 2013-08-19T08:13:14.080 に答える
1

jogl-all.jar と gluegen-rt.jar をクラスパスに配置し、ネイティブ ライブラリを含む JAR を同じディレクトリに配置するだけです。net.java.games.jogl は JOGL JSR 231 (非常に古いバージョン) に由来します。これは、JOGL 2 をダウンロードしている間はメンテナンスされていません。JOGL 2 で動作するようにコードを調整してください。

編集: 単一の JAR、jogamp-far.jar を使用できるようになりました。クラスパスに入れるだけで機能します。それはずっと簡単です。手順は wiki にあります

于 2014-02-04T20:12:30.253 に答える