簡體   English   中英

如何為OSX編譯.app捆綁包

[英]How to compile an .app bundle for OSX

我需要創建一個.app文件,以便在osx上使用我的javafx應用程序。

我已經讀過 ,但是並沒有太大幫助...

上面的教程的主題為“ DMG軟件包”,但是當我使用fxbuild編譯應用程序時,任何地方都沒有.app文件夾/聯系人(也沒有dmg)。 我究竟做錯了什么?

樣例構建腳本

這是一個在OS X上創建並安裝.app捆綁包的腳本

#! /bin/bash

################
# package.sh
#
# Packages java code as a native OS X application
#
# - Fetches source for a Java Swing HelloWorld application from the web
# - Compiles the source
# - Packages the source into a native Mac application
# - Installs the native Mac application
# - Runs the native Mac Application
#
# Requires:
#   OS X 10.8+
#   Java 8b77+ (http://jdk8.java.net/download.html) 
#   super user rights on the execution account
#
# To Use:
#   chmod +x package.sh
#   ./package.sh
# As the script executes sudo commands, enter your 
# superuser password as needed.
################


# select java version
set JAVA_HOME=`/usr/libexec/java_home -v 1.8`
$JAVA_HOME/bin/java -version

# cleanup work directory and any existing application install
if [ -d work ]; then
  rm -rf work
fi

if [ -d /Applications/HelloWorld.app ]; then
  sudo rm -rf /Applications/HelloWorld.app
fi

# create work directory and use it
mkdir work
cd work

# fetch a simple HelloWorldSwing sample java source from the web
mkdir start
cd start
curl -O http://docs.oracle.com/javase/tutorial/uiswing/examples/start/HelloWorldSwingProject/src/start/HelloWorldSwing.java
cd ..

# compile the HelloWorldSwing java source
$JAVA_HOME/bin/javac start/HelloWorldSwing.java

# create a jar file 
$JAVA_HOME/bin/jar cvf HelloWorldSwing.jar start/*.class

# make an executable jar file
$JAVA_HOME/bin/javafxpackager -createjar -srcdir . -appclass start.HelloWorldSwing -srcfiles HelloWorldSwing.jar -noembedlauncher -outdir . -outfile HelloWorld.jar

# package the jar and java runtime as a native application with installer
$JAVA_HOME/bin/javafxpackager -deploy -srcdir . -srcfiles HelloWorld.jar -outdir . -outfile HelloWorld -appclass start.HelloWorldSwing -native -name HelloWorld

# codesign the application using your apple developer ID (if you have one)
# allows the app to be accepted by the Apple GateKeeper - https://developer.apple.com/resources/developer-id/
# codesign -s "Developer ID Application" bundles/HelloWorld.app

# mount the installer disk image
hdiutil attach bundles/HelloWorld.dmg

# install the HelloWorld application from the disk image
sudo cp -R /Volumes/HelloWorld/HelloWorld.app /Applications

# unmount the installer disk image
umount `mount | grep HelloWorld | cut -d " " -f1`

# leave the work directory
cd ..

# run our newly installed application
open -a HelloWorld

回答其他問題

有沒有辦法在Windows上創建一個?

如果要創建Mac App,則需要Mac(至少對於JavaFX 2.2或8 App)。

等待-這是唯一的Java 8嗎? “要求:Java 8b77 +”

該腳本可能還適用於Java 7的更高版本(例如,在build 6之后),但是我從未嘗試使用這些版本。

它絕對不適用於Java 7的早期版本(例如,在內部版本6之前),也不適用於該版本之前的任何Java版本。

“要求:OS X 10.8+”

該腳本也可以在OS X 10.7上運行,但是我尚未對該版本進行測試。

它絕對不能在10.6或更早版本上運行(該應用也不會生產)。

嘗試了一個名為app-bundler.jar的Java類,但是沒有用

我從未嘗試過app-bundler.jar,也無法評論它可能會做什么或可能不會做什么。 此解決方案與app-bundler.jar不相關。

暫無
暫無

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

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