slick2d(lwjgl), nifty, kryonet — как собрать .jar?

я использую библиотеки, указанные выше. Я совершенно не понимаю, как создать исполняемый файл .jar. Не получится как-то.

Я использую плагин сборки maven, и пока мне удалось создать .jar для своего сервера. Мой сервер использует только kryonet и javafx, которые у меня есть в maven.

Отличный графический интерфейс, к сожалению, у меня есть только локально на моем диске, я добавил локальный репозиторий в свой pom.xml.

Из-за нативов lwjgl я решил использовать maven-nativedependencies-plugin, процесс копирования работает и все такое, и .jar успешно создается.

Я не уверен, где моя проблема. Создать файл .jar для моего сервера не составило большого труда, но я зависаю на игровом клиенте, я думаю, что это происходит из slick2d/lwjgl и/или изящного графического интерфейса.

Вы можете найти мою помпу здесь:

http://pastebin.com/PzG1cSuF

Скриншот Maven, если это поможет:

https://i.stack.imgur.com/osbnI.jpg (щелкните, чтобы размер лучше)

mavenscreenshot

Заранее спасибо !


person LOLWTFasdasd asdad    schedule 12.07.2015    source источник


Ответы (1)


Есть несколько подходов, которые вы могли бы предпринять.

Я бы предложил:

  1. Добавьте явную запись «Class-path» в файл .jars MANIFEST.MF, которая включает ваши зависимые библиотеки:

    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. Создайте "толстый/убер" .jar:

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

person paulsm4    schedule 12.07.2015
comment
спасибо плохо проверить это! Вероятно, самый простой способ - отправить зависимые банки в ту же папку, что и .jar, кому они нужны, верно? Несмотря на то, что это не очень приятно - нужно ли копировать зависимые .dll в ту же папку? Наверное правильно? - person LOLWTFasdasd asdad; 14.07.2015