2017-07-13 13 views
2

SceneBuilderとJetBrains IDEでプログラムをビルドし始めていますので、プログラムを国際化してプロパティファイルを作成します。すべてがSceneBuilderで正常に動作しますが、私はジェットブレーンズでプログラムを実行しようとすると、私は、この例外FXMLロード例外が指定されていません

/usr/lib/jvm/java-8-oracle/bin/java -Didea.launcher.port=7532 -Didea.launcher.bin.path=/home/paulo/idea-IC-163.12024.16/bin -Dfile.encoding=UTF-8 -classpath /usr/lib/jvm/java-8-oracle/jre/lib/charsets.jar:/usr/lib/jvm/java-8-oracle/jre/lib/deploy.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/cldrdata.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/dnsns.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/jaccess.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/jfxrt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/localedata.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/nashorn.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunec.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunjce_provider.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunpkcs11.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/zipfs.jar:/usr/lib/jvm/java-8-oracle/jre/lib/javaws.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jce.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jfr.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jfxswt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jsse.jar:/usr/lib/jvm/java-8-oracle/jre/lib/management-agent.jar:/usr/lib/jvm/java-8-oracle/jre/lib/plugin.jar:/usr/lib/jvm/java-8-oracle/jre/lib/resources.jar:/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar:/home/paulo/mysql-connector-java-5.1.41/mysql-connector-java-5.1.41-bin.jar:/home/paulo/ProjetoOrcamentos/WorkManager/out/production/WorkManager:/home/paulo/idea-IC-163.12024.16/lib/idea_rt.jar com.intellij.rt.execution.application.AppMain sample.Main 
Exception in Application start method 
Exception in thread "main" 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:748) 
Caused by: javafx.fxml.LoadException: No resources specified. 
/home/paulo/ProjetoOrcamentos/WorkManager/out/production/WorkManager/sample/sample.fxml:16 

    at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2597) 
    at javafx.fxml.FXMLLoader.access$100(FXMLLoader.java:103) 
    at javafx.fxml.FXMLLoader$Element.resolvePrefixedValue(FXMLLoader.java:421) 
    at javafx.fxml.FXMLLoader$Element.processValue(FXMLLoader.java:363) 
    at javafx.fxml.FXMLLoader$Element.processPropertyAttribute(FXMLLoader.java:325) 
    at javafx.fxml.FXMLLoader$Element.processInstancePropertyAttributes(FXMLLoader.java:235) 
    at javafx.fxml.FXMLLoader$ValueElement.processEndElement(FXMLLoader.java:767) 
    at javafx.fxml.FXMLLoader.processEndElement(FXMLLoader.java:2823) 
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2532) 
    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 sample.Main.start(Main.java:13) 
    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.gtk.GtkApplication._runLoop(Native Method) 
    at com.sun.glass.ui.gtk.GtkApplication.lambda$null$49(GtkApplication.java:139) 
    ... 1 more 

これは、これまで私が持っているコード

public class Main extends Application { 

    @Override 
    public void start(Stage primaryStage) throws Exception{ 
     Parent root = FXMLLoader.load(getClass().getResource("sample.fxml")); 
     primaryStage.setScene(new Scene(root, 1200, 1000)); 
     primaryStage.show(); 
    } 


    public static void main(String[] args) { 
     launch(args); 
    } 
} 

FXMLファイルで取得する:

<?xml version="1.0" encoding="UTF-8"?> 

<?import javafx.geometry.Insets?> 
<?import javafx.scene.Cursor?> 
<?import javafx.scene.control.Button?> 
<?import javafx.scene.layout.BorderPane?> 
<?import javafx.scene.layout.HBox?> 

<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1"> 
    <top> 
     <HBox spacing="20.0" BorderPane.alignment="CENTER"> 
     <children> 
      <Button mnemonicParsing="false" text="%newWorkButton"> 
       <cursor> 
        <Cursor fx:constant="CLOSED_HAND" /> 
       </cursor></Button> 
      <Button mnemonicParsing="false" text="%dbButton" /> 
     </children> 
     <padding> 
      <Insets bottom="15.0" left="15.0" right="15.0" top="15.0" /> 
     </padding> 
     <BorderPane.margin> 
      <Insets /> 
     </BorderPane.margin> 
     </HBox> 
    </top> 
</BorderPane> 

プロパティファイルをロードしようとしたときに問題が発生したが、なぜそれがSceneBuilderで動作しているのか、それを実行しようとすると機能しないことがわかったのですか?

PS:これはプロパティファイルを使用する部分であるため、%newWorkButtonまたは%dbButtonが表示されると問題が発生します。

答えて

0

私は同様の問題を抱えています。私はこれを見つけて、ResourceBundleをロードするのを忘れてしまって、アプリケーションがi18nリソースで爆発していることに気付きました。私は数日前に答えを見つけることができたので、私は自分のポストに答えるのです

javaFX application error: No resources specified

+0

ここではリンクを共有しないでください。何年か後にリンクが壊れたり、利用できなくなるためです。だから、ここであなたの解決策を共有してください。 –

3

:私はこの記事に私の答えを見つけました。 あなたがMainで見ることができるように私はfxmlをロードし、この行を持っていた:

Parent root = FXMLLoader.load(getClass().getResource("sample.fxml")) 

が、私はあまりにもそれをロードする必要があるプロパティファイルを使用していますので、これは私がやったことですので、:

ResourceBundle resources = ResourceBundle.getBundle("Language/lang_pt");; 

Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"),resources); 
0

"/"を "。"に置き換える必要があります。このように

ResourceBundle resources = ResourceBundle.getBundle("Language.lang_pt"); 
+0

これは問題ではありません。 "/"または "。"を使用できます。 –

関連する問題