2013-10-07 87 views
2

我想在我的Java項目中使用JZY3D庫。java.lang.NoSuchMethodError:javax.media.opengl.GLDrawableFactory.initSingleton()V

的基本開始,我設置了以下主要():

public static void main(final String[] args) { 
    new GLCapabilities(GLProfile.getDefault()); 
} 

的JOGL-all.jar在,gluegen-rt.jar中和gluegen.jar文件是在構建路徑。我得到以下例外:

Exception in thread "main" java.lang.NoSuchMethodError: javax.media.opengl.GLDrawableFactory.initSingleton()V 
    at javax.media.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1444) 
    at javax.media.opengl.GLProfile.access$100(GLProfile.java:76) 
    at javax.media.opengl.GLProfile$1.run(GLProfile.java:174) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.media.opengl.GLProfile.initSingleton(GLProfile.java:140) 
    at javax.media.opengl.GLProfile.initSingleton(GLProfile.java:199) 
    at javax.media.opengl.GLProfile.getProfileMap(GLProfile.java:1914) 
    at javax.media.opengl.GLProfile.get(GLProfile.java:815) 
    at javax.media.opengl.GLProfile.getDefault(GLProfile.java:602) 
    at javax.media.opengl.GLProfile.getDefault(GLProfile.java:613) 
    at eu.crisis_economics.abm.model.SpecsCompetitionStrategyCFO.main(SpecsCompetitionStrategyCFO.java:312) 

看起來好像有一個3D庫的問題,但我不知道是什麼。

回答

2

The jogl-all.jar, gluegen-rt.jar and gluegen.jar files are in the build path. I get the following exception:

從構建路徑中移除gluegen.jar。 確保在運行時將這兩個jar添加到classpath中! 您只需要在編譯時和運行時使用jogl-all.jar和gluegen-rt.jar(rt == runtime)。

你也需要有匹配的本地罐子的副本gluegen-RT-natives- os.and.arch .jar和JOGL-全natives- os.and.arch的.jar的平臺你用旁邊gluegen-的rt.jar和JOGL-all.jar在 http://jogamp.org/jogl/doc/deployment/JOGL-DEPLOYMENT.html#NativeJARFiles

+1

你說的是真的,但我的問題實際上是我的MacOSX上的JavaFramework中有一個替代jogl安裝。我可能在幾年前把它放在那裏,並忘了它... –

+0

@tamas。mahr這種替代JOGL安裝配備了在Mac上安裝的Java 3D的過時版本,因爲Apple拒絕停止將其與操作系統一起發貨。 – gouessej

0

您是否嘗試過使用Maven依賴項而不是手動添加這些罐子?

我做了一個乾淨的Maven項目,添加一個新的用戶庫與以下文件:

  • org.jzy3d-0.9.jar
  • 依賴性/其它/ opencsv-2.1.jar
  • 依賴/misc/org.convexhull.jar
  • 依賴性/雜項/ SWT.JAR
  • 依賴性/雜項/ SWT-debug.jar

之後,我添加以下Maven依賴:

<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> 

構建&運行,沒有例外。


一個更清潔的解決方案是:

+1

我試圖創建一個新的Maven項目,增加了gluegen和JOGL的依賴,但簡單的主我的問題概括仍不跑。它編譯沒有問題,但是當我運行它時,我得到了上述異常。 –

相關問題