【问题标题】:Issue with exporting java game to a .jar将 java 游戏导出到 .jar 的问题
【发布时间】: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,但在这里我可能仍需要答案。

标签: java jar classpath lwjgl


【解决方案1】:

我通过将我的资源、jar 和 native 打包到一个 zip 文件中来解决这个问题。 Java 会自动选择 jar 所在的文件夹来查找原生对象以及资源。

【讨论】:

    猜你喜欢
    • 2023-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    相关资源
    最近更新 更多