いつもお世話になっています。
JavaFXでGUIアプリケーションを作成しています。
開発環境はeclipceを使用してます。
私は、MacOS XとWindows7(64bit)のパソコンを持っており
アプリケーションは、MacOS Xの方で作成しました。
作りたかった機能があらかた完成し、
eclipseで実行しても問題なく動作しているようなので、
「エクスポート」>「実行可能JARファイル」として出力したのですが、
MacでもWindowsでも、正しく起動しません。
追記:この現象は、「生成されるJARに必須ライブラリーをパッケージ」を選択した場合のみで発生します。
「エクスポート」>「JARファイル」として出力すると、
MacでもWindowsでも、
問題なく起動し、アプリケーションを使用できます。
Windowsの方は、実行可能jarファイルを起動するために、
Javaを再インストールしたり、64bit用のJavaをインストールしたり
環境変数の設定をしたりと色々触ってみたりみたのですが、ダメでした。
fxmlファイルについては、JARファイルでエクスポートすれば起動できることと
ほとんど「JavaFx Scene Builder2.0」で作成していたため
ここには原因がないのではないかと思い、細かい確認などはしていないです。
追記:eclipseにて、「実行可能JARファイル」をエクスポートする際、
「生成されるJARに必須ライブラリーを抽出」や
「生成されるJARの隣のサブフォルダーに必須ライブラリーをコピー」を選択していた場合は、
jarファイルが問題なく起動しました。
###追記:目的
後々は、javapackagerを使って
自己完結型アプリケーションにしたいです。
上記のサイトを参考に、起動できるJARファイルから
javapackagerを使ってexeファイルを作成してみましたが
インストール後、「No main class specified」「Find angle to launch JVM」
というメッセージが出るだけで、こちらも起動しません。
まだ、エクスポート時の方法によって起動できない原因は分かっていませんが
最終目的は、自己完結型アプリケーションとしてのパッケージなので、
それを達成するための原因は別件かと思い、タイトルも変更しました。
恐れ入りますが、何卒よろしくお願いします。><
###エラーメッセージ
コマンドプロンプトで
java -jar アプリケーション名.jar > log.txt 2>&1
このように入力すると、
eclipseで、「実行可能JARファイル」の
「生成されるJARに必須ライブラリーをパッケージ」を選択してエクスポートした場合のみ、
以下のようなエラーが出力され、ウィンドウなどが全く表示されません。
ただ、タスクマネージャーを確認すると、「java.exe」が起動しています。
ダブルクリックで起動した場合は、「javaw.exe」が起動します。
どちらも、「Java(TM) Platform SE binary」となってます。
これらは、エラーが出た後、タスクマネージャーから終了させるまで動いているみたいです。
javafx.fxml.LoadException: application/MainForm.fxml:26 at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2579) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104) at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097) at application.Main.start(Main.java:21) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326) at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191) at java.lang.Thread.run(Unknown Source) Caused by: java.net.MalformedURLException: Could not open InputStream for URL 'rsrc:ActionForm.fxml' at org.eclipse.jdt.internal.jarinjarloader.RsrcURLConnection.getInputStream(RsrcURLConnection.java:46) at java.net.URL.openStream(Unknown Source) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2440) at javafx.fxml.FXMLLoader.access$2700(FXMLLoader.java:103) at javafx.fxml.FXMLLoader$IncludeElement.constructValue(FXMLLoader.java:1143) at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:746) at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527) ... 17 more
###追記:MANIFEST.MF
こちらが「実行可能JARファイル」でエクスポートした.jarファイルから
MANIFEST.MFを展開したものです!
Manifest-Version: 1.0 Rsrc-Class-Path: ./ org.eclipse.fx.ide.css.jfx8_2.3.0.201603030809.jar Class-Path: . Rsrc-Main-Class: application.Main Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
こちらが「JARファイル」でエクスポートした.jarファイルから
MANIFEST.MFを展開したものです!
Manifest-Version: 1.0 Main-Class: application.Main
###追記:javapackager
「管理者として実行」でコマンドプロンプトを起動して、以下のように入力しています。
javapackager -deploy -native exe -outdir C:\test -outfile test -srcdir C:\test -srcfiles test.jar -appclass application.Main -name test
C:\testの中にJARファイルを保存しています。出力先も同じC:\testです。
この時点では、特にエラーなどは確認されず、
ファイルは以下のディレクトリに保存されました、みたいなメッセージが出てきて終了しています。
作成された.exeファイルも、インストールやアンインストール時の動作に問題はないように見えます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/16 05:08