webstart.html 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]--><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="Asciidoctor 1.5.4"><title>WebStart (JNLP) Deployment</title><link rel="stylesheet" href="./asciidoctor.css">
  2. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
  3. <link rel="stylesheet" href="./coderay-asciidoctor.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css"></head><body class="article toc2 toc-left"><div id="header"><div id="toolbar"><a href="https://github.com/jMonkeyEngine/wiki/edit/master/src/docs/asciidoc/jme3/webstart.adoc"><i class="fa fa-pencil-square" aria-hidden="true"></i></a><a href="https://github.com/jMonkeyEngine/wiki/new/master/src/docs/asciidoc/jme3/"><i class="fa fa-plus-square" aria-hidden="true"></i></a><input dir="auto" style="position: relative; vertical-align: top;" spellcheck="false" autocomplete="off" class="searchbox__input aa-input" id="doc-search" name="search" placeholder="Search in the doc" required="required" type="search"></div><h1>WebStart (JNLP) Deployment</h1><div class="details"><span class="author" id="author"></span><br><span id="revnumber">version ,</span> <span id="revdate">2016/03/17 20:48</span></div><div id="toc" class="toc2"><div id="toctitle">Table of Contents</div><ul class="sectlevel1"><li><a href="#problem-statement">Problem Statement</a></li><li><a href="#simple-way">Simple way</a></li><li><a href="#reliable-way">Reliable way</a><ul class="sectlevel2"><li><a href="#native-jars">Native jars</a></li><li><a href="#jnlp-file">JNLP file</a></li><li><a href="#set-low-permissions-mode">Set low-permissions mode</a></li></ul></li></ul></div></div><div id="content"><div id="preamble"><div class="sectionbody"><div class="paragraph"><p>When you <a href="../sdk/application_deployment.html">use the jMonkeyEngine SDK to deploy your application</a>, you can configure the project to build files required for WebStart automatically. If you use another IDE, or work on the command line, use the following tips to set up WebStart correctly:</p></div></div></div>
  4. <div class="sect1"><h2 id="problem-statement">Problem Statement</h2><div class="sectionbody"><div class="paragraph"><p><strong>Problem:</strong></p></div>
  5. <div class="paragraph"><p>When running under WebStart, jMonkeyEngine may not have permission to extract the native libraries to the current directory.</p></div>
  6. <div class="paragraph"><p>*Solution: *</p></div>
  7. <div class="paragraph"><p>You can instruct WebStart to load the native libraries itself using the JNLP file, and then instruct jME3 not to try to do so itself.</p></div></div></div>
  8. <div class="sect1"><h2 id="simple-way">Simple way</h2><div class="sectionbody"><div class="paragraph"><p>You can import the LWJGL JNLP extension directly into your extension, however be aware that your application will break whenever they update their jars. Simply add this line to your JNLP:</p></div>
  9. <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="xml"><span class="tag">&lt;extension</span> <span class="attribute-name">name</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">lwjgl</span><span class="delimiter">&quot;</span></span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">http://lwjgl.org/webstart/2.7.1/extension.jnlp</span><span class="delimiter">&quot;</span></span> <span class="tag">/&gt;</span></code></pre></div></div></div></div>
  10. <div class="sect2"><h3 id="reliable-way">Reliable way</h3><div class="sect2"><h3 id="native-jars">Native jars</h3><div class="paragraph"><p>You can download the LWJGL native jars from their site, or to ensure you&#8217;re using the exact same version as bundled with your jME3 release, make your own:</p></div>
  11. <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code>mkdir tmp
  12. cd tmp
  13. jar xfv ../jME3-lwjgl-natives.jar
  14. cd native
  15. for i in *; do
  16. cd $i
  17. jar cfv ../../native_$i.jar .
  18. cd ..
  19. done</code></pre></div></div>
  20. <div class="paragraph"><p>For Windows:</p></div>
  21. <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code>@echo off
  22. md tmp
  23. cd tmp
  24. "%JDK_HOME%\bin\jar" -xfv ..\jME3-lwjgl-natives.jar
  25. cd native
  26. for /D %%i in ("*") do (
  27. cd %%i
  28. "%JDK_HOME%\bin\jar" -cfv ..\..\native_%%i%.jar .
  29. cd ..
  30. )
  31. cd ..</code></pre></div></div>
  32. <div class="paragraph"><p>Remember to sign all the jar files and move them into the right place from the tmp directory.</p></div></div>
  33. <div class="sect2"><h3 id="jnlp-file">JNLP file</h3><div class="paragraph"><p>Add the following to your JNLP file:</p></div>
  34. <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="xml"> <span class="tag">&lt;resources</span> <span class="attribute-name">os</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">Windows</span><span class="delimiter">&quot;</span></span><span class="tag">&gt;</span>
  35. <span class="tag">&lt;j2se</span> <span class="attribute-name">version</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">1.4+</span><span class="delimiter">&quot;</span></span><span class="tag">/&gt;</span>
  36. <span class="tag">&lt;nativelib</span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">native_windows.jar</span><span class="delimiter">&quot;</span></span><span class="tag">/&gt;</span>
  37. <span class="tag">&lt;/resources&gt;</span>
  38. <span class="tag">&lt;resources</span> <span class="attribute-name">os</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">Linux</span><span class="delimiter">&quot;</span></span><span class="tag">&gt;</span>
  39. <span class="tag">&lt;j2se</span> <span class="attribute-name">version</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">1.4+</span><span class="delimiter">&quot;</span></span><span class="tag">/&gt;</span>
  40. <span class="tag">&lt;nativelib</span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">native_linux.jar</span><span class="delimiter">&quot;</span></span><span class="tag">/&gt;</span>
  41. <span class="tag">&lt;/resources&gt;</span>
  42. <span class="tag">&lt;resources</span> <span class="attribute-name">os</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">Mac OS X</span><span class="delimiter">&quot;</span></span><span class="tag">&gt;</span>
  43. <span class="tag">&lt;j2se</span> <span class="attribute-name">version</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">1.4+</span><span class="delimiter">&quot;</span></span><span class="tag">/&gt;</span>
  44. <span class="tag">&lt;nativelib</span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">native_macosx.jar</span><span class="delimiter">&quot;</span></span><span class="tag">/&gt;</span>
  45. <span class="tag">&lt;/resources&gt;</span>
  46. <span class="tag">&lt;resources</span> <span class="attribute-name">os</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">SunOS</span><span class="delimiter">&quot;</span></span> <span class="attribute-name">arch</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">x86</span><span class="delimiter">&quot;</span></span><span class="tag">&gt;</span>
  47. <span class="tag">&lt;j2se</span> <span class="attribute-name">version</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">1.4+</span><span class="delimiter">&quot;</span></span><span class="tag">/&gt;</span>
  48. <span class="tag">&lt;nativelib</span> <span class="attribute-name">href</span>=<span class="string"><span class="delimiter">&quot;</span><span class="content">native_solaris.jar</span><span class="delimiter">&quot;</span></span><span class="tag">/&gt;</span>
  49. <span class="tag">&lt;/resources&gt;</span></code></pre></div></div></div>
  50. <div class="sect2"><h3 id="set-low-permissions-mode">Set low-permissions mode</h3><div class="paragraph"><p>In your main() method, if running under WebStart, tell jME3 it is running in a low-permission environment so that it doesn&#8217;t try to load the natives itself:</p></div>
  51. <div class="listingblock"><div class="content"><pre class="CodeRay highlight"><code data-lang="java"> <span class="directive">public</span> <span class="directive">static</span> <span class="type">void</span> main(<span class="predefined-type">String</span><span class="type">[]</span> args)
  52. {
  53. <span class="keyword">if</span> (<span class="predefined-type">System</span>.getProperty(<span class="string"><span class="delimiter">&quot;</span><span class="content">javawebstart.version</span><span class="delimiter">&quot;</span></span>) != <span class="predefined-constant">null</span>) {
  54. JmeSystem.setLowPermissions(<span class="predefined-constant">true</span>);
  55. }</code></pre></div></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2018-02-28 16:23:40 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
  56. apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
  57. indexName: 'jmonkeyengine',
  58. inputSelector: '#doc-search',
  59. debug: false // Set debug to true if you want to inspect the dropdown
  60. });</script></body></html>