如何在webstart上使用jnlp运行lwjgl?

时间:2013-10-30 11:51:03

标签: java applet lwjgl java-web-start jnlp

我一直在寻找一种正确运行 lwjgl 小程序的方法。 我使用appletloader尝试了旧学校的方法,但这对我来说没有用 所以替代方案是webstart / jnlp。

有人可以向我解释我需要什么.jnlp / .html,因为我找不到能够广泛解释所有内容的相关例子。

我猜我要的是一个教程(;。

2 个答案:

答案 0 :(得分:1)

JNLP部署的Oracle教程相当完整和简单。

http://docs.oracle.com/javase/tutorial/deployment/deploymentInDepth/jnlp.html

设置JNLP类似于jar中的清单,您必须指定主类,类路径,设置权限等。

答案 1 :(得分:0)

这是我用来从我的jnlp加载lwjgl的方法。特别注意除了主lwjgl和lwjgl-util jar之外的最终的nativelibs。 LWJGL将这些文件作为普通的本机库文件进行分发。您需要将它们打包在jar文件中 - 请进一步了解。

<?xml version="1.0" encoding="utf-8"?>
<!-- BitMinter Client JNLP file -->
<jnlp spec="6.0+" codebase="https://bitminter.com/client/"
      href="bitminter.jnlp">
  <information>
    <title>BitMinter Client</title>
    <vendor>BitMinter.com</vendor>
    <homepage href="https://bitminter.com/"/>
    <description>BitMinter</description>
    <description kind="short">Mining for the digital mint</description>
    <icon href="bitminter256x256.png" width="256" height="256"/>
    <icon href="bitminter64x64.png"   width="64"  height="64"/>
    <icon href="bitminter48x48.png"   width="48"  height="48"/>
    <icon href="bitminter32x32.png"   width="32"  height="32"/>
    <icon href="bitminter16x16.png"   width="16"  height="16"/>
    <icon kind="splash" href="bitmintersplash.png"/>
    <shortcut online="true">
      <desktop/>
      <menu submenu="BitMinter"/>
    </shortcut>
  </information>
  <security>
    <all-permissions/>
  </security>
  <update check="always" policy="always"/>
  <application-desc main-class="com.bitminter.client.Main"/>
  <resources>
    <java version="1.6+" initial-heap-size="40m" max-heap-size="800m"
          java-vm-args=""/>
    <jar href="bitminter.jar"/>
    <!-- long list of regular jars left out -->
    <jar href="lwjgl-2.8.4.jar"/>
    <jar href="lwjgl_util-2.8.4.jar"/>
  </resources>

  <!-- LWJGL Linux 64-bit native libraries -->
  <resources os="Linux" arch="amd64">
    <nativelib href="lwjgl-amd64-linux.jar"/>
  </resources>
  <resources os="Linux" arch="x86_64">
    <nativelib href="lwjgl-amd64-linux.jar"/>
  </resources>

  <!-- LWJGL Linux 32-bit native libraries -->
  <resources os="Linux" arch="x86">
    <nativelib href="lwjgl-x86-linux.jar"/>
  </resources>
  <resources os="Linux" arch="i386">
    <nativelib href="lwjgl-x86-linux.jar"/>
  </resources>

  <!-- LWJGL Windows 64-bit native libraries -->
  <resources os="Windows" arch="amd64">
    <nativelib href="lwjgl-amd64-win.jar"/>
  </resources>
  <resources os="Windows" arch="x86_64">
    <nativelib href="lwjgl-amd64-win.jar"/>
  </resources>

  <!-- LWJGL Windows 32-bit native libraries -->
  <resources os="Windows" arch="x86">
    <nativelib href="lwjgl-x86-win.jar"/>
  </resources>
  <resources os="Windows" arch="i386">
    <nativelib href="lwjgl-x86-win.jar"/>
  </resources>

  <!-- LWJGL MAC OS/X native libraries -->
  <resources os="Mac">
    <nativelib href="lwjgl-macosx.jar"/>
  </resources>
</jnlp>

LWJGL本机库分布在每个操作系统的文件夹中,其中32位和64位库集中在一起。我们需要为我们希望支持的每个操作系统制作64和32位jar文件,除了Mac OS X在同一文件中有32位和64位。如果您不需要所有本机库,那么您只需要包含您需要的库。这是一个使用ant来创建仅包含主lwjgl本地库的jar的示例,省略了输入和openal部分。

<!-- LWJGL -->
<jar jarfile="${build.unsigned}/lwjgl-amd64-linux.jar">
  <fileset file="${lib}/native/lwjgl/linux/liblwjgl64.so"/>
</jar>
<jar jarfile="${build.unsigned}/lwjgl-x86-linux.jar">
  <fileset file="${lib}/native/lwjgl/linux/liblwjgl.so"/>
</jar>
<jar jarfile="${build.unsigned}/lwjgl-amd64-win.jar">
  <fileset file="${lib}/native/lwjgl/windows/lwjgl64.dll"/>
</jar>
<jar jarfile="${build.unsigned}/lwjgl-x86-win.jar">
  <fileset file="${lib}/native/lwjgl/windows/lwjgl.dll"/>
</jar>
<jar jarfile="${build.unsigned}/lwjgl-macosx.jar">
  <fileset file="${lib}/native/lwjgl/macosx/liblwjgl.jnilib"/>
</jar>

我们在这里创建的jar文件是上面的jnlp加载的文件。

您还可以使用jar实用程序从命令行创建jar文件:

jar cf lwjgl-amd64-linux.jar linux/liblwjgl64.so
jar cf lwjgl-x86-linux.jar linux/liblwjgl.so
jar cf lwjgl-amd64-win.jar windows/lwjgl64.dll
jar cf lwjgl-x86-win.jar windows/lwjgl.dll
jar cf lwjgl-macosx.jar macosx/liblwjgl.jnilib