【问题标题】:exporting runnable jar through eclipse - project using jogl native jars通过 eclipse 导出可运行的 jar - 使用 jogl 本机 jar 的项目
【发布时间】:2013-09-21 14:04:54
【问题描述】:

我正在使用 jogl 本机 jars(如解释 -> http://jogamp.org/jogl/doc/userguide/#automatednativelibraryloading),我想通过 eclipse 导出 jar,如解释 -> http://jogamp.org/wiki/index.php/JogAmp_JAR_File_Handling。 第一种方法有效,但第二种方法无效,当然我想把所有东西都放在一个罐子里。

有没有人遇到过这个问题并能分享他的解决方案?

我正在运行 windows 7 64bit、java 64bit、eclipse 4.3 和最新的 jogl 库。

附言 我也试过蚂蚁脚本:

    <jar destfile="${dist.dir}/${app.name}-${app.version}.jar">
        <manifest>
            <attribute name="Main-Class" value="org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader"/>
            <attribute name="Rsrc-Main-Class" value="com.home.pso.Uruchom"/>
            <attribute name="Class-Path" value="."/>
            <attribute name="Rsrc-Class-Path" value="./ gluegen-rt.jar gluegen-rt-natives-windows-amd64.jar jogl-all.jar jogl-all-natives-windows-amd64.jar"/>
        </manifest>
        <zipfileset src="jar-in-jar-loader.zip"/>
        <fileset dir="${bin.dir}"/>
        <zipfileset dir="${lib.dir}" includes="*.jar"/>
    </jar>

p.s.2 我想用最简单的方法来做,最好不要使用本机库(.dll、.so),因为名称冲突(不同的平台)并且不使用任何 3-rd 方程序。

谢谢你的回答。

编辑:

我忘了提,我想用我的应用程序创建可运行的 jar。

运行 jar 后出现以下错误,这是我用第二种方法创建的:

ezekiel@vm-ubuntu:~/Pulpit/workspace/pso/lib$ 
/home/ezekiel/Pulpit/jdk1.7.0_40/jre/bin/java' -jar '/home/ezekiel/Pulpit/pso-1.0.jar' 
Catched URISyntaxException: Expected scheme-specific part at index 5: rsrc:, while    
TempJarCache.bootstrapNativeLib() of null (null + gluegen-rt-natives-linux-amd64.jar)
Exception in thread "main" java.lang.reflect.InvocationTargetException
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     at java.lang.reflect.Method.invoke(Method.java:606)
     at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.UnsatisfiedLinkError: Can't load library: /home/ezekiel/Pulpit/workspace/pso/lib/libgluegen-rt.so
     at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1846)
     at java.lang.Runtime.load0(Runtime.java:795)
     at java.lang.System.load(System.java:1061)
     at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:468)
     at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:63)
     at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:94)
     at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:332)
     at com.jogamp.common.os.DynamicLibraryBundle$GlueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:390)
     at com.jogamp.common.os.Platform$1.run(Platform.java:210)
     at java.security.AccessController.doPrivileged(Native Method)
     at com.jogamp.common.os.Platform.<clinit>(Platform.java:173)
     at javax.media.opengl.GLProfile.<clinit>(GLProfile.java:82)
     at javax.media.opengl.awt.GLCanvas.<init>(GLCanvas.java:247)
     at javax.media.opengl.awt.GLCanvas.<init>(GLCanvas.java:197)
     at javax.media.opengl.awt.GLCanvas.<init>(GLCanvas.java:187)
     at com.home.pso.Uruchom.main(Uruchom.java:74)
     ... 5 more

我也在linux下测试过这个^^

【问题讨论】:

    标签: eclipse jar native runnable jogl


    【解决方案1】:

    这里是解决方案 http://forum.jogamp.org/exporting-runnable-jar-through-eclipse-td4030094.html#a4030096 它起作用了,但在某些版本中停止了。

    【讨论】:

    • 感谢您的提示。 Processing 2.0.3 有这个问题。
    【解决方案2】:

    这应该适合你:

    1. 在 Eclipse 中转到 File -> New -> Project -> Java Project
    2. 在项目根目录创建一个名为“lib”的新文件夹
    3. 将所有 jar 粘贴到您想要包含在此项目的导出 jar 中的 lib 文件夹中。
    4. 右击项目并选择->属性(在底部)
    5. 在属性对话框中,从左侧选择“java build path”(从上数第四个)
    6. 在此视图中,选择“库”选项卡,然后单击“添加 jar”,在对话框中导航到您的 lib 文件夹并单击所有 jar,然后单击确定。
    7. 不要转到右侧的“订购和导出”选项卡,然后选择您刚刚添加的所有 jar,以便将它们包含在项目的导出 jar 中。
    8. 单击“确定”关闭项目属性对话框,然后右击项目并选择“导出”
    9. 展开“java”节点文件夹并选择“Jar”,然后单击下一步。
    10. 选择您的项目并确保未选中所有其他项目。
    11. 在右上角的树形视图中展开您选择的项目,并确保选中“lib 文件夹”,否则在构建过程中不会导出。
    12. 点击“选择导出目标”下方的“浏览”,为导出的 jar 创建文件路径
    13. 保留其他所有内容,选择“完成”并导航到您选择导出目标的文件系统,然后查看您的 jar 是否正确。

    【讨论】:

    • 这不是我的想法,但仍然感谢。我编辑了我的帖子。
    猜你喜欢
    • 2012-08-30
    • 1970-01-01
    • 2021-10-17
    • 2013-02-21
    • 2017-05-13
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 2017-07-04
    相关资源
    最近更新 更多