建立一个罐子 [英] Build single jar

查看:101
本文介绍了建立一个罐子的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从此项目构建单个jar,以便在其他计算机上运行。

I'm trying to build single jar from this project to run on other computer.

我尝试从命令行构建它:

I have tried to build it from command line:

clustertag/out/production/ClusterTag$ jar cmvf META-INF/MANIFEST.MF app.jar no/simula/clustertag/*.class
added manifest
adding: no/simula/clustertag/Engine$10.class(in = 1525) (out= 825)(deflated 45%)
adding: no/simula/clustertag/Engine$1.class(in = 9190) (out= 5067)(deflated 44%)
adding: no/simula/clustertag/Engine$1MyDouble.class(in = 610) (out= 380)(deflated 37%)
adding: no/simula/clustertag/Engine$2.class(in = 1397) (out= 670)(deflated 52%)
adding: no/simula/clustertag/Engine$3.class(in = 1530) (out= 704)(deflated 53%)
adding: no/simula/clustertag/Engine$4.class(in = 1883) (out= 888)(deflated 52%)
adding: no/simula/clustertag/Engine$5.class(in = 3121) (out= 1477)(deflated 52%)
adding: no/simula/clustertag/Engine$6.class(in = 1619) (out= 782)(deflated 51%)
adding: no/simula/clustertag/Engine$7.class(in = 1820) (out= 798)(deflated 56%)
adding: no/simula/clustertag/Engine$8.class(in = 2083) (out= 1082)(deflated 48%)
adding: no/simula/clustertag/Engine$9.class(in = 2656) (out= 1351)(deflated 49%)
adding: no/simula/clustertag/Engine.class(in = 20223) (out= 9992)(deflated 50%)
adding: no/simula/clustertag/Features.class(in = 7814) (out= 3650)(deflated 53%)
adding: no/simula/clustertag/Features$GlobalFeatureInfo.class(in = 1009) (out= 511)(deflated 49%)
adding: no/simula/clustertag/Frame.class(in = 7590) (out= 2358)(deflated 68%)
adding: no/simula/clustertag/ImageInternal.class(in = 929) (out= 455)(deflated 51%)
adding: no/simula/clustertag/Main$1.class(in = 1791) (out= 792)(deflated 55%)
adding: no/simula/clustertag/Main$2.class(in = 2347) (out= 1341)(deflated 42%)
adding: no/simula/clustertag/Main$3.class(in = 529) (out= 339)(deflated 35%)
adding: no/simula/clustertag/Main.class(in = 11513) (out= 5778)(deflated 49%)
adding: no/simula/clustertag/ObjectPos.class(in = 1096) (out= 520)(deflated 52%)
adding: no/simula/clustertag/Objects.class(in = 6123) (out= 3108)(deflated 49%)
adding: no/simula/clustertag/PictureInternal.class(in = 2765) (out= 1007)(deflated 63%)
adding: no/simula/clustertag/Thumb.class(in = 1763) (out= 739)(deflated 58%)
adding: no/simula/clustertag/Tree.class(in = 6786) (out= 2500)(deflated 63%)
adding: no/simula/clustertag/TreeNode.class(in = 4858) (out= 2050)(deflated 57%)
adding: no/simula/clustertag/TreeProcessor.class(in = 732) (out= 342)(deflated 53%)
adding: no/simula/clustertag/TreeView.class(in = 3838) (out= 1759)(deflated 54%)
adding: no/simula/clustertag/TreeView$MyTreeModelListener.class(in = 1916) (out= 891)(deflated 53%)

但是当我尝试运行它时出现错误:

But when I try to run it I get error:

java -jar app.jar
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/newdawn/slick/Game
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
    at java.lang.Class.getMethod0(Class.java:3018)
    at java.lang.Class.getMethod(Class.java:1784)
    at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.newdawn.slick.Game
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 7 more

我也尝试构建它作为Intellij Idea中的工件,但也会出错:

Also I have tried to build it as artifact in Intellij Idea, but also get error:

clustertag/out/artifacts/ClusterTag_jar$ java -jar ClusterTag.jar
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
    at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:330)
    at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:263)
    at java.util.jar.JarVerifier.processEntry(JarVerifier.java:318)
    at java.util.jar.JarVerifier.update(JarVerifier.java:230)
    at java.util.jar.JarFile.initializeVerifier(JarFile.java:383)
    at java.util.jar.JarFile.getInputStream(JarFile.java:450)
    at sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.java:977)
    at sun.misc.Resource.cachedInputStream(Resource.java:77)
    at sun.misc.Resource.getByteBuffer(Resource.java:160)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:454)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)

libbin 文件夹项目中有一些 .so 依赖性,所以可能会引起问题吗?

In libbin folder project have some .so dependensies, so maybe it can cause the problem?

推荐答案

最后我从命令行解决了该问题:

Finally I solved it building from command line:

jar cmvf META-INF / MANIFEST.MF app.jar否/ simula / clustertag / *。class

META-INF / MANIFEST.MF 我添加了库:

Manifest-Version: 1.0
Main-Class: no.simula.clustertag.Main
Class-Path: lib/ibxm.jar lib/jinput.jar lib/jnlp.jar lib/jogg-0.0.7.jar lib/jorbis-0.0.15.jar lib/lire.jar lib/lwjgl.jar lib/lwjgl_util.jar lib/lwjgl_util_applet.jar lib/natives-linux.jar lib/slick.jar lib/tinylinepp.jar

并通过 java -Djava.library.path = libbin -jar app.jar 运行code>

and runned it via java -Djava.library.path=libbin -jar app.jar

这篇关于建立一个罐子的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆