2017-08-24 3 views
-2

私のプロジェクトにはいくつかのjarファイル、いくつかのリソース、h2データベースなどがあります。 Macアプリケーションを作成するにはPlatypusを使用しました。私のアプリケーションを実行するにはシェルスクリプトが使われました。MacアプリケーションとしてJavaアプリケーションを起動すると、デフォルトのjavaプロセス名と、私の代わりに説明について

ただし、この場合のアプリケーションは、その後別のJavaプロセス開始を開始したときにそこマックメニューのアプリも適切アボトン記述の適切な名前でもありません。また、ターミナルが始まりません。

このような不具合を避けるためにアプリを起動する必要があります。そのため、アプリの名前とAboutの説明が正しいものになりましたか?

私が今見る(名前と概要):

enter image description here

enter image description here

マイ起動シェルスクリプトは以下の通りです:

私はアプリを作成した方法
#!/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 $* 

カモノハシプロセスは単純です:私は自分のシェルスクリプトを設定し、すべての私のリソースを追加します。また、私はアイコンを設定することができます。マニュアルに言ったように、私は記述について許可するCredits.htmlを追加します。

enter image description here

答えて

1

あなたはheadless modeでのJavaアプリケーション/プロセスを実行してみてください可能性があります。
あなたDEFAULT_JVM_OPTSには、このオプションを追加してみてください:

-Djava.awt.headless=true 

しかし、あなたのJavaアプリケーションは、実行可能な選択肢ではないかもしれないGUIを持つため。

また、彼らのJava Development Guide for Mac docsに述べたように、com.apple.eawtアップル拡張クラス(EX AboutHandler、QuitHandlerなど。)を使用して、システムメニューのための独自のハンドラを実装してみてください:

カスタマイズに次のステップをあなたのアプリケーションメニューは、アプリケーションメニューの特定の項目が が選択されたときに呼び出される処理コードである を持つことです。 Appleはこのための機能をJavaクラスのcom.apple.eawt.* に提供しています。 ApplicationクラスとApplicationAdaptorクラスは、Preferences、About、およびQuitアイテムを処理するための方法を に提供します。

私は実際のAPIドキュメントを見つけることができませんでした。
はここに助けるかもしれないいくつかの他のSOのリンクです:

+0

はい。このオプションを使用すると例外があります:スレッド "main"の例外java.awt.HeadlessException ...しかし、情報のおかげで、私はこれらのアプローチを見ていきます。 –

関連する問題