slick2d(lwjgl)、nifty、kryonet - 如何构建 .jar?

slick2d(lwjgl), nifty, kryonet - how to build a .jar?

我正在使用上述库。我很困惑如何构建可执行的 .jar 文件。它不会以某种方式工作。

我正在使用 maven 程序集插件,到目前为止我能够为我的服务器创建一个 .jar。我的服务器只使用我在 maven 中的 kryonet 和 javafx。

漂亮的 GUI 不幸的是我的驱动器上只有本地,我添加了一个本地存储库到我的 pom.xml。

由于 lwjgl natives,我选择使用 maven-nativedependencies-plugin,复制过程确实有效,并且成功创建了 .jar。

我不确定我的问题出在哪里。创建我的服务器 .jar 文件没什么大不了的,但我挂在游戏客户端上,我认为它起源于 slick2d / lwjgl 和/或 nifty gui。

你可以在这里找到我的 pom:

http://pastebin.com/PzG1cSuF

Maven 截图如果有帮助:

http://i.stack.imgur.com/osbnI.jpg(点击以获得更好的尺寸)

提前致谢!

您可以采用多种方法。

我建议:

  1. 在包含依赖库的 .jars MANIFEST.MF 中添加显式 "Class-path" 条目:

    http://alvinalexander.com/blog/post/java/how-build-executable-jar-file-reference-dependencies

    示例 build.xml 片段:

    <tstamp/><!-- needed for TODAY --> 
    <manifest file="MANIFEST.MF">
      <attribute name="Built-By" value="${manifest.built.by}"/>
      <attribute name="Created-By" value="${manifest.created.by}"/>
      <attribute name="Main-Class" value="${manifest.main.class}"/>
      <attribute name="Implementation-Version" value="${version.number}-${build.number}"/>
      <attribute name="Built-Date" value="${TODAY}"/>
      <attribute name="Class-Path" value="${mf.classpath}" /> 
    </manifest>
    
  2. 将依赖的 .jar 与您的应用程序的 jar 一起发送。 换句话说,将依赖的 .jars 复制到安装应用程序时的同一安装目录。

另一种不同的方法可能是:

  1. 创建一个 "fat/uber".jar:

http://www.mkyong.com/maven/create-a-fat-jar-file-maven-assembly-plugin/