【发布时间】:2011-10-25 13:48:16
【问题描述】:
我有一个使用 lwjgl 和 slick-util 的 java 游戏。它可以在我的电脑上完美运行,但不能在其他任何人的电脑上运行。它被包装在一个罐子里。我使用 Eclipse 创建了 jar,并使用 Jarsplice 密封了本地程序和库。基本 Jar 文件夹仅包含包目录和本机,没有清单或类路径。游戏本身不是 Applet。
在我的电脑上,这个 jar 可以完美运行游戏。对于其他任何人,只要在主代码中调用 Display 类,它就会崩溃(留下一个带有基本 java 名称和图标以及灰色内部窗口的空框架)。我已经打包了 32 位和 64 位本机,并在 32 位和 64 位 Windows 系统上进行了测试,但唯一运行它的是我的(Windows 32 位)。
该 jar 在基本文件夹中没有类路径或清单。
我在运行 jar 之前重命名了我的 eclipse 构建引用文件夹,包括 natives 文件夹,它仍然有效。我没有其他地方的本地人。
这是 jar 中的 META-INF/MANIFEST.MF。请注意,当我删除 Main-Class 行时,jar 在我的计算机上也不起作用。被引用的类在 Jar 中。
Manifest-Version: 1.0
Launcher-VM-Args:
Launcher-Main-Class: processors.Main
Main-Class: org.ninjacave.jarsplice.core.JarSpliceLauncher
这是jar中的目录结构:
META-INF
org
game packages including processors
all the natives.dll
更新:我肯定已将其范围缩小到仅被我的机器检测到的本地人,这可能是由于我安装了一些东西。也许我错过了什么?
【问题讨论】:
-
我没有看到任何与包
processors对应的类文件夹。在代码工作的本地机器上你的 CLASSPATH 设置是什么? -
(game) 只包含我的游戏的所有包,实际上是 6 个包(处理器、播放器、内存等) 我的 Windows CLASSPATH 是:.;C:\Program Files\Java\jre1 .6.0_05\lib\ext\QTJava.zip;
-
啊,你使用 JarSplicer (正如我更仔细地阅读你的问题所看到的那样)。查看此线程,可能会有所帮助 - stackoverflow.com/questions/6749141/…。
-
我已经浏览了那个帖子,这就是我了解 JarSplice 的方式 :) 我做的所有步骤都是正确的,但我失败了,之前它在我的机器上不起作用,但我现在得到了一切并且它不想在其他计算机上工作。
-
我正在研究使用 JNA 而不是 JarSplice,但在这里我可能仍需要答案。