【发布时间】:2020-07-02 19:46:58
【问题描述】:
我知道有一种方法可以在外部 IDE 中使用 Processing P3D 进行编程。
我已经成功地能够在 NetBeans IDE 中运行 2D 和 P3D 草图。但是,如果我在我的草图中使用 Processing P3D 将项目构建为 JAR 文件,并尝试运行该 JAR 文件,我会收到此错误:
java.lang.UnsatisfiedLinkError: Can't load library: C:\Users\*****\natives\windows-i586\\gluegen-rt.dll
我该怎么做才能使处理 P3D 草图在 JAR 文件中运行? 我知道这与处理使用的 JOGL 库有关,但我不知道如何满足错误。
草图在 netbeans 中运行良好:
Processing P3D sketch running fine in netbeans 11.2
Sketch 在 Windows Powershell 中作为 JAR 文件运行...:
Processing P3D sketch running as JAR file in Windows Powershell
完全错误:
java.lang.UnsatisfiedLinkError: Can't load library: C:\Users\*****\natives\windows-i586\\gluegen-rt.dll
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:624)
at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:63)
at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:106)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:487)
at com.jogamp.common.os.DynamicLibraryBundle$GlueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:421)
at com.jogamp.common.os.Platform$1.run(Platform.java:317)
at java.security.AccessController.doPrivileged(Native Method)
at com.jogamp.common.os.Platform.<clinit>(Platform.java:287)
at com.jogamp.nativewindow.NativeWindowFactory$2.run(NativeWindowFactory.java:183)
at java.security.AccessController.doPrivileged(Native Method)
at com.jogamp.nativewindow.NativeWindowFactory.<clinit>(NativeWindowFactory.java:180)
at com.jogamp.newt.NewtFactory$1.run(NewtFactory.java:68)
at java.security.AccessController.doPrivileged(Native Method)
at com.jogamp.newt.NewtFactory.<clinit>(NewtFactory.java:65)
at processing.opengl.PSurfaceJOGL.initIcons(PSurfaceJOGL.java:498)
at processing.opengl.PSurfaceJOGL.initFrame(PSurfaceJOGL.java:134)
at processing.core.PApplet.initSurface(PApplet.java:11035)
at processing.core.PApplet.runSketch(PApplet.java:10922)
at processing.core.PApplet.main(PApplet.java:10657)
at processing.core.PApplet.main(PApplet.java:10639)
at com.JSF.processing.Main.main(Main.java:16)
【问题讨论】:
-
您需要修改项目的 Ant 脚本,将 jogamp-fat.jar 的内容包含到您的 fat JAR 中。你可以看看我的脚本,尤其是名为“create-jars”的目标:svn.code.sf.net/p/tuer/code/pre_beta/build.xml
-
顺便说一下,我在JNDT中使用了nsis-ant,也许对你有帮助...
-
好的。我的项目正在使用 Maven。那么我将如何做到这一点/我能在 Maven 中做到这一点吗?
-
也许使用 Maven 是可行的,但它可能非常复杂,因为它不是执行此操作的正确工具。当您需要更灵活的东西时,请使用 Ant 或 Gradle。我用这三个工具,我不是很偏颇。
标签: opengl netbeans processing jogl