2017-08-24 17 views
-2

我在我的项目中有一些jar文件,一些资源,h2数据库等。创建Mac应用程序我用鸭嘴兽。运行我的应用程序使用shell脚本当启动Java应用程序作为苹果应用程序有默认的Java进程名称和关于说明,而不是我的

然而,在这种情况下,当应用程序启动然后单独的Java过程开始并且存在在Mac菜单应用程序也不正确阿布吨描述既不适当的名称。另外终​​端开始,这是不想要的。

我该如何启动应用程序以避免这些缺点,以便应用程序的名称和关于说明是正确的?

我现在看到什么(名字和简介):

enter image description here

enter image description here

我发起shell脚本如下:

#!/bin/bash 

export IRULE_HOME="$(cd "$(dirname "$0")" && pwd -P)" 

export IRULE_LANG=en 
export IRULE_REGION=EN 
export IRULE_XMS=-Xms256m 
export IRULE_XMX=-Xmx1024m 
export LOG4J_CONFIGURATION=${IRULE_HOME}/conf/log4j2.xml 
export JAVA_HOME="${IRULE_HOME}/jre/Contents/Home" 

export DEFAULT_JVM_OPTS="$IRULE_XMS \ 
       $IRULE_XMX \ 
       -Dlog4j.configuration=file:"${LOG4J_CONFIGURATION}" \ 
       -Dirule.home=${IRULE_HOME} \ 
       -Dirule.client.logs.path=${IRULE_HOME}/logs \ 
       -Duser.language="${IRULE_LANG}" \ 
       -Duser.region="${IRULE_REGION}" \ 
       $JAVA_OPTS" 


export PATH=${JAVA_HOME}/bin:${JAVA_HOME}:${PATH} 
export CLASSPATH=${IRULE_HOME}/lib/*:${IRULE_HOME}/conf:${JAVA_HOME}/lib/jfxrt.jar; 

exec ${JAVA_HOME}/bin/java -Xdock:name="iRule Reader" -Xdock:icon=${IRULE_HOME}/image/irule.png ${DEFAULT_JVM_OPTS} -classpath "${CLASSPATH}" com.spi2.Main $* 

如何创建的应用程序由Platypus。该过程很简单:我设置了我的shell脚本并添加了所有资源。我也可以设置图标。我添加Credits.html允许关于描述在文档说:

enter image description here

回答

1

你可以尝试在headless mode运行Java应用程序/进程。
尝试增加此选项可将DEFAULT_JVM_OPTS

-Djava.awt.headless=true 

但你的Java应用程序有一个GUI,这可能不是一个可行的选择。

您也可以尝试实现自己的处理程序使用com.apple.eawt苹果扩展类(如AboutHandler,QuitHandler等。)系统菜单,如表示,他们Java Development Guide for Mac docs

下一步要定制当应用程序菜单中的某些项目选择 时,您的应用程序菜单将自行处理代码 。 Apple在Java类中为此提供了这种功能。 Application和ApplicationAdaptor类提供 方式来处理首选项,关于和退出项目。

虽然我找不到实际的API文档。
这里有一些其他的SO链接可以帮助:

+0

是。有了这个选项,就会出现一个异常:线程“main”中的异常java.awt.HeadlessException ...不过感谢这些信息,我会看到这些方法。 –

相关问题