为什么在使用JavaFX时不能打开runnable.jar文件?

为什么在使用JavaFX时不能打开runnable.jar文件?,java,javafx,fxml,scenebuilder,Java,Javafx,Fxml,Scenebuilder,当我使用JaxaFX时,我无法打开runnable.jar文件。我双击文件,什么也没发生。如果我使用在swing中创建的GUI导出runnable.jar,它将正常打开。 我试着在另一台电脑上打开我的.jar,我也遇到了同样的问题。 为了创建GUI,我使用了场景生成器。但我也测试了只导出一个简单的窗格而不实现场景生成器。同样的结果 我已经安装了Java JDK(12.0.1)、Java SE(8更新211)和Java JRE(8更新211)的这些版本 我在导出时尝试了所有三个选项:“提取所需库…

当我使用JaxaFX时,我无法打开runnable.jar文件。我双击文件,什么也没发生。如果我使用在swing中创建的GUI导出runnable.jar,它将正常打开。 我试着在另一台电脑上打开我的.jar,我也遇到了同样的问题。 为了创建GUI,我使用了场景生成器。但我也测试了只导出一个简单的窗格而不实现场景生成器。同样的结果

我已经安装了Java JDK(12.0.1)、Java SE(8更新211)和Java JRE(8更新211)的这些版本

我在导出时尝试了所有三个选项:“提取所需库…”、“打包所需库…”和“复制所需库…”。他们都没有工作。 我使用Eclipse。在创建“JaxaFX项目”时,它还会在项目文件夹中创建一个名为“build.fxbuild”的文件。我试着用它创建一个.jar。但它显示“该项目仅附加到JRE,因此ant将使用没有编译器的JRE启动。是否继续并选择JDK?”。如果我单击“是”,它会显示一个列表,但其中没有供我选择的条目。 下面是我的“主要”代码

包应用;
导入javafx.application.application;
导入javafx.fxml.fxmloader;
导入javafx.stage.stage;
导入javafx.scene.Parent;
导入javafx.scene.scene;
公共类主扩展应用程序{
@凌驾
公共无效开始(阶段primaryStage){
试一试{
父根=fxmloader.load(getClass().getResource(“MyScene.fxml”);
场景=新场景(根,300,200);
scene.getStylesheets().add(getClass().getResource(“application.css”).toExternalForm());
初级阶段。场景(场景);
primaryStage.show();
}捕获(例外e){
e、 printStackTrace();
}
}
公共静态void main(字符串[]args){
发射(args);
}
}

我唯一的解决办法是创建一个.bat文件。在它里面我放了一个我在教程中看到的命令:“java-jar‘该文件的名称’.jar”。如果我打开那一个,一切正常。

JAR文件与计算机上的
java
相关吗?目前它们与“java(TM)平台SE二进制”相关。这是正确的吗?您的计算机上有Java8和Java12;它与哪个版本关联?请注意,JavaFX包含在Java8(Oracle)中,但不包含在Java11+中。您说它是从命令行运行的(例如,
java-jar…
),但是在路径上找到的java版本可能与您关联的
.jar
文件不同。我只是尝试用“D:/programs/java/jre1.8.0_211/bin/java.exe”打开.jar文件。在programs/Java中有更多的文件夹,jdk8和12。我试着用这些文件夹中的.exe打开.jar,但没有成功。