簡體   English   中英

使用JarBundler將Java轉換為MacOSX的.app文件

[英]Convert Java to .app file for MacOSX using JarBundler

我所要做的就是將一個簡單的java程序轉換為macOSX .app文件,這樣我就可以將它作為一個簡單的可執行文件分發。

我到處都讀過,每個人都說同樣的話:

  1. 使用Xcode - 據我所知,Xcode不再支持Java Build
  2. 使用Jar Bundler - 所有教程似乎都已過時,但它不起作用。 當我運行:java -jar jarbundler-2.0.0.jar

    控制台返回“jarbundler-2.0.0.jar中沒有主要清單屬性”

    如果我是對的,那么打包jar文件的人會失敗嗎? 但我試過從其他網站和其他版本下載它,但我得到了相同的東西。

  3. 他們說你可以自己創建目錄和文件,然后將你的文件夾重命名為.app,然后對它運行一個命令,但這很復雜,因為我不確切知道如何創建一個info.plist文件......如果你想這樣做,我到目前為止找到的最好的網站就是這個: OSX的Java部署選項

我已將我的代碼編譯成.jar文件,我有一個圖標和所有內容,我需要做的就是以某種方式將其打包到.app文件中。

我在這里先向您的幫助表示感謝!

編輯:我明白了! 經過7或8個小時的搜索和閱讀后,它可以工作。 因為我是新手,所以我將發布我所學到的所有東西來拯救那些經歷過同樣問題的人。 我放棄了自己做的方法,然后回到了JarBundler。 如果其他人正在讀這個並且他們對ANT一無所知,那就是我所做的:下載JarBundler,我從這里得到了我的: Mac OS X JarBundler ANT任務並按照其中的說明操作。

下載時,請將jarbundler-2.2.0.jar文件放在此處:

的/ usr /共享/螞蟻/ lib中

您可能必須運行命令來移動它,例如:

sudo mv jarbundler-2.2.0.jar~ /../../ usr / share / ant / lib / jarbundler-2.2.0.jar

就像我說的那樣,我還在學習,但這對我有用。

確保你移動了正確的jarbundler,這是我遇到問題的地方,我移動了整個文件夾,而不是內部.jar文件,所以請確保你移動你下載的文件夾zip里面的.jar,而不是整個東西,否則當你去構建它時,你會得到一個錯誤,如錯誤:taskdef class net.sourceforge.jarbundler.JarBundler找不到。

然后你需要將你的代碼編譯成一個.jar文件(有兩種類型,一種是像.zip,另一種是可執行文件)你想要一個普通的JAR文件,不是可執行的,所以要做到這一點你首先需要編譯您的代碼獲取.class文件,然后打開命令提示符並按照此處的說明操作: 創建一個Jar文件該命令將如下所示:

jar cf myName.jar * .class

獲得jar文件后,需要在同一文件夾中創建.xml文件,並且需要將其命名為build.xml。 使用文本編輯器編輯它。 按照上面鏈接中的說明創建它。 它看起來像這樣:

//build.xml

<project name="MyProject">

<taskdef name="jarbundler"
classname="net.sourceforge.jarbundler.JarBundler" />

<target name="bundle">

<jarbundler dir="release"
        name="Apollo's Image Editor"
        mainclass="ImageEditorGUI" 
        jar="ApolloIE.jar"
        icon="Aperture.icns" />

</target>

</project>

從那里(順便說一下,我使用的是Macbook Pro)你所要做的就是從該文件夾運行一個命令行:

螞蟻束

它應該在名為release的文件夾中創建一個.app文件。 總結一下:你需要的只是同一個文件夾中的.jar文件和build.xml文件,然后運行命令:ant bundle(或者你在build.xml文件中命名為target的任何東西,我把它命名為bundle)

祝你好運,希望這有助於那里的任何人。

如果有人想知道,我拿了由JarBundler生成的Info.plist並將其放入我正在制作的目錄中並且它有效! 所以這就是問題,我只是不知道如何正確格式化......這里是: Info.plist

在Mac OS X上, 應用程序包是一個名稱以.app結尾的目錄,其中包含應用程序使用的資源。 這個游戲是一個使用ant 構建腳本 在原位構建bundle的示例。 這里引用其他參考文獻。

如果要使用Oracle Java而不是Apple已停產的Java,則應使用Java Application Bundler而不是JarBundler。

另見這些答案:

為我工作! 出於某種原因,我無法將jarbundler .jar文件放在Ant區域中,而是必須從build.xml中明確指出它(我把它放在<projectRoot>/jarbundler/jarbundler-2.2.0.jar ) 。 我的build.xml看起來像:

<?xml version="1.0" encoding="UTF-8"?>
<project name="TripleWhammy" default="default" basedir=".">        
    <taskdef name="jarbundler"
             classname="net.sourceforge.jarbundler.JarBundler"
             classpath="jarbundler/jarbundler-2.2.0.jar" />

    <target name="bundle">
        <jarbundler dir="."
                    name="Triple Whammy"
                    mainclass="org.bigclue.TripleWhammy"
                    jar="target/triple-whammy-1.0-jar-with-dependencies.jar"
                    icon="triple-whammy.icns"/>
    </target>
</project>

這在我的項目目錄中創建了“Triple Whammy.app”。 我的圖標看起來不錯。 甜。

現在我已經構建了一個簡單的可分發骰子.app ,時間來構建一些很棒的東西......

(Mac OS X 10.6.8,Java 1.6.0_51,Ant 1.8.4;使用Maven 3.0.4構建我的.jar及其“匯編”插件版本2.4)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM