slick2d(lwjgl), nifty, kryonet - как да изградя .jar?

използвам библиотеките, посочени по-горе. Доста съм объркан как да създам изпълним .jar файл. Няма да работи някак.

Използвам плъгина за сглобяване на maven и досега успях да създам .jar за моя сървър. Моят сървър използва само kryonet и javafx, които имам в maven.

Чудесен GUI, за съжаление, имам само локално на моето устройство, добавих локално хранилище към моя pom.xml.

Поради местните lwjgl избрах да използвам приставката maven-nativedependencies-plugin, процесът на копиране върши работа и други неща и .jar е създаден успешно.

Не съм сигурен къде ми е проблемът. Създаването на моя сървър .jar файл не беше голяма работа, но аз се задържам на клиента на играта, мисля, че това има произход от slick2d / lwjgl и/или готин gui.

Можете да намерите моя pom тук:

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 заедно с буркана на вашето приложение. С други думи, копирайте зависимите .jars в същата инсталационна директория, когато инсталирате приложението си.

Друг, различен подход може да бъде:

  1. Създайте "fat/uber" .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