如何在 BlueJ 中导出 Java JOGL GlueGen 项目?

问题描述

我想将我的 Java 项目导出到独立的 Jar 或 exe 文件。我使用 blueJ 作为 IDE,并使用以下库:GLOOP、JOGL 和 glueGen(以及 pi4j)。在 IDE 中运行程序本身可以完美运行,但是当我将程序导出为 .jar 文件并使用 launch4j 将其包装到 exe 中时,我收到以下错误

Catched IllegalArgumentException: No Jar name in <jar:file:/C:/Users/neche/Desktop/UfoSpiel.exe!/com/jogamp/common/os/Platform.class>,got <UfoSpiel.exe>,while TempJarCache.bootstrapNativeLib() of null (null + null)
Exception in thread "main" java.lang.UnsatisfiedLinkError: no gluegen-rt in java.library.path
    at java.lang.classLoader.loadLibrary(UnkNown Source)
    at java.lang.Runtime.loadLibrary0(UnkNown Source)
    at java.lang.System.loadLibrary(UnkNown Source)
    at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:454)
    at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:59)
    at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:90)
    at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:328)
    at com.jogamp.common.os.DynamicLibraryBundle$glueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:390)
    at com.jogamp.common.os.Platform$2.run(Platform.java:249)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.jogamp.common.os.Platform.loadglueGenRTImpl(Platform.java:231)
    at com.jogamp.common.os.Platform.<clinit>(Platform.java:183)
    at javax.media.opengl.GLProfile.<clinit>(GLProfile.java:99)
    at GLOOP.glrenderer.<init>(glrenderer.java:90)
    at GLOOP.GLKamera.<init>(GLKamera.java:49)
    at UfoSzene.main(UfoSzene.java:14)

我使用操作系统 Windows 64 位和 BLuej 版本 414

我在谷歌上搜索了很多,但从未找到有相同问题或使用相同操作系统或 IDE 的人。 如果你们中有人能提供帮助,那就太棒了。

这里是主线程代​​码:

import GLOOP.*;
public class UfoSzene
{    
    public static void main(String[] args)
    {
        GLKamera kamera;
        GLLicht licht; 
        GLBoden weltall;
        
        UfoSpiel ufoSpiel = new UfoSpiel();
        Punkte punkteStand = new Punkte();
        
        weltall = new GLBoden("Weltall.jpg");
        kamera = new GLKamera(800,800);
        kamera.setzePosition(2000,3001,20);
        kamera.setzeBlickpunkt(2000,0);
        licht = new GLLicht();
        
        
        ufoSpiel.start(); 
        punkteStand.start();
    }
}

提前致谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)