2015-07-12 40 views
1

我使用上面提到的庫。我很困惑如何構建一個可執行的.jar文件。它不會以某種方式工作。slick2d(lwjgl),漂亮,kryonet - 如何構建.jar?

我正在使用maven assembly plugin,到目前爲止我能夠爲我的服務器創建一個.jar。我的服務器只使用kryonet和javafx,我有maven。

Nifty GUI不幸的是我只在本地驅動器上,我添加了一個本地存儲庫到我的pom.xml。

由於lwjgl本地人,我選擇使用maven-nativedependencies-plugin,複製過程確實有效,而且.jar被成功創建。

我不知道我的問題在哪裏。創建我的服務器.jar文件並不是什麼大不了的事情,但我掛在遊戲客戶端上,我認爲這是slick2d/lwjgl和or nifty gui的起源。

你可以在這裏找到我的POM:

http://pastebin.com/PzG1cSuF

Maven的截圖是否有幫助:

http://i.stack.imgur.com/osbnI.jpg(點擊更好的大小)

mavenscreenshot

提前感謝!

回答

0

您可以採取幾種方法。

我建議:

  1. 添加在您的.jar文件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. 運送依賴ndent .jar與您的應用程序的jar一起。 換言之,在安裝應用程序時,將相關的.jars複製到相同的安裝目錄。

另一種,不同的方法可能是:

  • 創建一個 「脂肪/超級」 的.jar:
  • http://www.mkyong.com/maven/create-a-fat-jar-file-maven-assembly-plugin/

    +0

    感謝病檢查這個出來! 最簡單的方法可能是將依賴jar放入與需要它們的.jar相同的文件夾中?儘管這不是很好 - 我是否必須將相關的.dll也複製到同一個文件夾中?可能是對的? –