2014-02-26 64 views
0

我需要创建一个.app文件才能在osx上使用我的javafx应用程序。如何为OSX编译.app软件包

我已经读过this,但它没有太大的帮助......

上面的教程有一个主题“DMG包”,但是当我编译我的应用程序与fxbuild没有的.app文件夹/ conainer (也没有dmg)。我究竟做错了什么?

回答

1

样本构建脚本

这里是一个script创建并在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应用程序,你需要一个Mac(至少对于JavaFX 2.2或8应用程序)。

WAIT-这是唯一的Java 8 ?? “需要:Java 8b77 +”

该脚本也可能适用于更高版本的Java 7(例如,构建6之后),但我从未尝试过使用这些版本。

这绝对不适用于Java 7的早期版本(例如,构建版本6之前)以及之前版本的Java。

“要求:OS X 10.8+”

该脚本还可以在OS X 10.7的工作,但我还没有与该版本进行测试。

它绝对不会在10.6或更早版本上运行(并且应用程序也不会生成)。

尝试一个Java类名为app-bundler.jar但没有工作

我从来没有尝试过的应用程序,bundler.jar,不能在它可能会或可能不会做评论。该解决方案与app-bundler.jar无关。

+0

有没有办法在Windows上创建一个? –

+0

我尝试了一个名为app-bundler.jar的java类,但那不起作用:( –

+0

WAIT-这是唯一的Java 8 ??“需要:Java 8b77 +” –