2011-02-11 10 views
3

JavaアプリケーションをMac OSに移行しようとしています。
アプリケーションが起動すると、スプラッシュ画面が表示されます。Mac OS、Javaスプラッシュ

私はそれはこのように行くの端末からアプリケーションを実行している:私はこのような画面が表示されるスプラッシュを行う際
java -classpath /the/right/classpath/ -splash:images/splash.png myApp/Main

しかし、 Jar Bundlerでアプリをバンドルすると、スプラッシュ画面は表示されません。ジャーバンドラーの

は、プロパティタブの下で、VMオプションに私が書いた:私も試した
splash:images/splash.png

-splash:images/splash.png(ハイフン)。
オプション「 作業ディレクトリを内部アプリケーションパッケージに設定する」とマークしました。

私はimages/splash.pngにコピーします。

  • myApp.app/Contents
  • myApp.app/Contents/Resources
  • myApp.app/Contents/Resources/Java
  • myApp.app/Contents/MacOS
  • を しかし、スプラッシュ画面は表示されません!

    myApp.appが正常に実行されたため、奇妙なことです。スプラッシュ画面が表示されないだけです。

    私はコンソールで、この二つのメッセージが見つかりました:

    2月11日2時53分32秒SnowL /Users/myusername/Desktop/myApp.app/Contents/MacOS/JavaApplicationStub[24262]:認識されないのJava VMオプション無視を: -splash:images/splash.png

    スプラッシュ属性の前にハイフンを付けないでください。

    2月11日午前2時55分50秒SnowL /Users/myusername/Desktop/myApp.app/Contents/MacOS/JavaApplicationStub[26314]:認識されないのJava VMオプションは無視さ:スプラッシュ:画像/ splash.png

    どのように私は端末からアプリを実行すると、スプラッシュ画面が表示されますが、 しかし、アプリをダブルクリックするとスプラッシュ画面が表示されませんか?
    端末VMと同じVM上で動作するはずですね。
    IオスロJVMのバージョン(Info.plistファイル上)への変更:それらの
    1.5 *
    1.5+
    1.6 *
    1.6+
    どれも表示されるようにスプラッシュ画面を作ります。

    ありがとうございました!

    +0

    'Jar Bundler'のリンクを見てから、Java Web Start(http://stackoverflow.com/tags/java-web-start/info)を使用して実現できないことは何も見えません。あなたはアプリを配布できますか?サーバーから? –

    +0

    私はJava Web Startに慣れていません(覚えておいてください:) フォームWeb Startをインストールできますが、Web Startからは実行できません。 とにかく、JVMは同じJVMでなければなりません。 Web Startではスプラッシュ画面が表示されると思いますか? Web-Startは別のJVMから実行されますか? – Arnon

    答えて

    6

    、あなたのInfo.plistで:私のアプリケーションで

    ... 
    <key>Java</key> 
        <dict> 
    
        <key>MainClass</key> 
        <string>...</string> 
    
        <key>SplashFile</key> 
        <string>$APP_PACKAGE/tmp_splash.png</string> 
    ... 
    
    +0

    なぜマックバンドルアプリはMANIFEST.MFを無視しますか? – radistao

    1

    あなたはアプリケーション

    +0

    スプラッシュ画面の全体的な考え方は、App IDが読み込まれている間にユーザーに何かが表示されることです。 jFrameを使用する場合、JMVはロードする必要があります。ロード時間が長くなります。 私はこのプログラミング方法を提供するいくつかのチュートリアルを読んでいます - それは正しい方法ではないと思います。とにかく、助けてくれてありがとう。 – Arnon

    0

    の起動時にアプリケーションが飾り切り、あなたの写真とのJFrameを表示させることができ、私は同じ問題を抱えていたし、このスレッドで解決策を見つけた:

    http://lists.apple.com/archives/java-dev/2008/Jun/msg00012.html

    Jar Bundlerを使用した後、バンドルされたアプリケーションのInfo.plistファイルにエントリを追加します。また、イメージはmyApp.app/Content /Resources/Javaにコピーする必要があります(少なくとも「アプリケーションパッケージ内の作業ディレクトリを設定する」オプションを使用してください)。おそらくもっと良い方法がありますが、これはうまくいくようです。このよう

    3


    のInfo.plist:

    ... 
        <dict> 
         <key>ClassPath</key> 
         <string>$JAVAROOT/@[email protected]:@[email protected]</string> 
         <key>JVMVersion</key> 
         <string>1.6+</string> 
         <key>MainClass</key> 
         <string>@[email protected]</string> 
         <key>SplashFile</key> 
         <string>$JAVAROOT/splash.png</string> 
        ... 
    

    コピーsplash.pngにmyapp.app/Contents /Resources/Java/splash.png
    et voila。