Докуметация Cтарт Статьи Форум Лента Вход
Не официальное русскоязычное сообщество
Главная
    Документация jMonkeyEngine
        jMonkeyEngine Уроки и Документация
            WebStart (JNLP) Deployment

WebStart (JNLP) Deployment

Опубликованно: 25.09.2017, 16:43
Последняя редакция, Andry: 25.09.2017 16:59

Когда вы используете SDK jMonkeyEngine для развертывания своего приложения, вы можете настроить проект на автоматическое создание файлов, необходимых для WebStart. Если вы используете другую IDE или работаете в командной строке, используйте следующие советы для правильной настройки WebStart:

Постановка задачи

Проблема:

При запуске под WebStart у jMonkeyEngine может не быть разрешения на извлечение родных библиотек в текущую папку.

*Решение: *

Вы можете поручить WebStart самостоятельно загружать собственные библиотеки, используя JNLP-файл, а затем задать jME3 не пытаться сделать это самостоятельно.

Простой способ

Вы можете импортировать расширение LWJGL JNLP непосредственно в ваше расширение, однако имейте в виду, что ваше приложение будет ломаться, когда они будут обновлять свои jar-ы. Просто добавьте эту строку в JNLP:

<extension name="lwjgl" href="http://lwjgl.org/webstart/2.7.1/extension.jnlp" />

Надежный способ

Родные jar-ы

Вы можете загружать родные jar-ы JWJGL с их сайта или убедиться, что вы используете ту же самую версию, что и в комплекте с вашей версией релиза jME3, используйте свои родные:

mkdir tmp
cd tmp
jar xfv ../jME3-lwjgl-natives.jar
cd native
for i in *; do
  cd $i
  jar cfv ../../native_$i.jar .
  cd ..
done

Для Windows:

@echo off
md tmp
cd tmp
"%JDK_HOME%\bin\jar" -xfv ..\jME3-lwjgl-natives.jar
cd native
for /D %%i in ("*") do (
  cd %%i
  "%JDK_HOME%\bin\jar" -cfv ..\..\native_%%i%.jar .
  cd ..
)
cd ..

Не забудьте указать все jar файлы и переместить их в нужное место из каталога tmp.

JNLP файл

Добавьте в свой JNLP-файл следующее:

  <resources os="Windows">
    <j2se version="1.4+"/>
    <nativelib href="native_windows.jar"/>
  </resources>
  <resources os="Linux">
    <j2se version="1.4+"/>
    <nativelib href="native_linux.jar"/>
  </resources>
  <resources os="Mac OS X">
    <j2se version="1.4+"/>
    <nativelib href="native_macosx.jar"/>
  </resources>
  <resources os="SunOS" arch="x86">
    <j2se version="1.4+"/>
    <nativelib href="native_solaris.jar"/>
  </resources>

Установите режим с низкой разрешающей способностью

В вашем main() методе, если он запущен под WebStart, укажите jME3, что он работает в среде с низким разрешением, чтобы он не пытался загружать своё родное:

  public static void main(String[] args)
  {
      if (System.getProperty("javawebstart.version") != null) {
        JmeSystem.setLowPermissions(true);
      }

Переведено для jmonkeyengine.ru, оригинал
Автор перевода: Andry

Добавить комментарий

jMonkeyEngine.ru © 2017. Все права сохранены.