2017-04-20 131 views
1

我想创建一个jar文件,但是当我尝试运行它我得到java.lang.IllegalStateException: Location is not set.包括FXML文件,可执行的JAR

这是它是如何在我的代码加载它:

FXMLLoader loader = new FXMLLoader(Main.class.getResource("/view/MainView.fxml")); 

jar文件正在使用IntelliJ IDEA的修建:项目结构 - >文物

解决

我已经成功加入

<resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <includes> 
       <include>**/*.fxml</include> 
       <include>**/*.css</include> 
      </includes> 
     </resource> 
    </resources> 

和Maven的组装插件

回答

2

建设项目通过您的IDE是不是一个好主意与Maven来解决这个问题。它改变了你项目的目录结构,所以你的fxml文件的相对路径不再正确。如果您使用Maven构建项目,则应该摆脱该问题。然后将maven-compiler-plugin添加到您生成的pom.xml中。

<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     ... 
    </plugin> 
... 
</plugins> 
+1

(无耻刊登广告)和关于JavaFX的,这将有助于使用JavaFX的Maven的插件藏汉;)可以更容易地捆绑分发应用程序 – FibreFoX