私はjavaでプログラムを作成して実行可能な.jarファイルにエクスポートしましたが、実行しようとすると開かず、コマンドプロンプトで実行しようとすると次の例外を除きます。それは日食で完璧に動作します。以下なぜ私の.jarファイルが動作しないのですか
Exception in Application start method
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Exception in Application start
method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.FileNotFoundException: back.jpg (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at memoryMaster.memoryMaster.start(memoryMaster.java:58)
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)
Exception running application memoryMaster.memoryMaster
は、私は、ファイルシステムからファイルを取得するために多くを意味している私のプロジェクト
public void start(Stage primaryStage) throws FileNotFoundException {
FileInputStream input = new FileInputStream("back.jpg"); // initializing
// new
// fileinoutstream.
FileInputStream one = new FileInputStream("1.png"); // initializing new
// fileinoutstream.
FileInputStream two = new FileInputStream("2.jpg"); // initializing new
// fileinoutstream.
FileInputStream three = new FileInputStream("3.jpg"); // initializing
// new
// fileinoutstream.
FileInputStream four = new FileInputStream("4.png"); // initializing new
// fileinoutstream.
FileInputStream five = new FileInputStream("5.png"); // initializing new
// fileinoutstream.
FileInputStream six = new FileInputStream("6.png"); // initializing new
// fileinoutstream.
FileInputStream seven = new FileInputStream("7.png"); // initializing
// new
// fileinoutstream.
FileInputStream eight = new FileInputStream("8.png"); // initializing
// new
// fileinoutstream.
image = new Image(input); // initializing new image object
iv.add(new Image(one)); // adding image to arrayList.
iv.add(new Image(two)); // adding image to arrayList.
iv.add(new Image(three)); // adding image to arrayList.
iv.add(new Image(four)); // adding image to arrayList.
iv.add(new Image(five)); // adding image to arrayList.
iv.add(new Image(six)); // adding image to arrayList.
iv.add(new Image(seven)); // adding image to arrayList.
iv.add(new Image(eight)); // adding image to arrayList.
iv.add(iv.get(0)); // adding image to arrayList.
iv.add(iv.get(1)); // adding image to arrayList.
iv.add(iv.get(2)); // adding image to arrayList.
iv.add(iv.get(3)); // adding image to arrayList.
iv.add(iv.get(4)); // adding image to arrayList.
iv.add(iv.get(5)); // adding image to arrayList.
iv.add(iv.get(6)); // adding image to arrayList.
iv.add(iv.get(7)); // adding image to arrayList.
score.setText("Score = " + scoreKpr); // setting text to score.
for (int i = 0; i < 16; i++) {
back.add(new ImageView(image)); // adding image to arrayList.
}
「原因:java.io.FileNotFoundException:back.jpg(そのようなファイルまたはディレクトリはありません)」という行を見ましたか? –
'back.jpg'はどうやってロードしていますか?私は時々、IDEとvs jarで動作するときに、リソースローダーが少しトリッキーであることに気付きました。 – MaxPower
根本原因は* "原因:java.io.FileNotFoundException:back.jpg(そのようなファイルまたはディレクトリはありません)" *、* "javaでプログラムを作成し、実行可能ファイル.jarにエクスポートしました" *私に示唆'back.jpg'はアプリコンテキスト(' src'ディレクトリに含まれています)にあり、あなたは 'File'を使って直接(' src'パスを含む)参照しています。埋め込まれたら、 'File'を使ってJarファイルに含まれるリソースを読み込むことはできません。代わりに' Class#getResource'を使う必要があります。ファイルが埋め込まれていない場合、ファイルはプログラムが実行された場所を基準にして存在する必要があります – MadProgrammer