有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaFX:需要帮助理解项目层次结构问题吗

我的代码变得相当大,所以我决定构建一个可运行的JAR,看看它是如何完成的。我可能应该早点尝试,因为我遇到了与项目结构相关的两个不同错误,第一个是在试图从命令提示符运行JAR时出现的“无主清单属性错误”。双击JAR什么也不做(Win7)。第二个问题与下面解释的FXMLLoader有关

我按照步骤here构建JAR,这涉及将所有Maven文件移动到JAR目录中。编译后的JAR给了我清单错误,所以我遵循了this,它在我的pom.xml文件中添加了一个Maven插件。该错误可能是由于<mainClass>com.primary.Drag</mainClass>行的命名约定错误造成的,其中primary是包Drag是我的拖拽。具有main方法的java文件(类)

起初,我使用的是默认软件包,但读到这不建议用于更大的项目,所以我将所有文件放入“主”中。以下是我当前的层次结构,如IntelliJ所示:

hierachy

问题是,自从我创建了“主”包以来,我甚至无法通过IntelliJ编译程序,更不用说构建一个可运行的JAR了。这是因为我提到的第二个错误,即java.lang.IllegalStateException: Location is not set.primary/Drag.java内的这一行上:

FXMLLoader loader = new FXMLLoader(getClass().getClassLoader().getResource("firstlaunch.fxml"));它以前使用默认包,但现在不再使用了

我尝试用/primary/firstlaunch.fxml/resources/firstlaunch.fxml替换firstlaunch.fxml(有或没有将资源移动到主包中),但没有成功

3个相关问题:

  1. 我的项目结构不正确吗
  2. 如何从primary包中引用fxml文件
  3. 这就是我应该在Maven的mainClass标签中写的吗<mainClass>com.primary.Drag</mainClass>

共 (1) 个答案

  1. # 1 楼答案

    1. 我的项目结构不正确吗

    答复:

    你的包名应该像com。初级。*****

    1. 如何从Primary软件包中引用fxml文件

    答复:

    始终确保您正在尝试加载firstlaunch。来自类的xml,该类位于保存该xml的同一个包中。表示您编写加载代码和xml文件的类应该在同一个包中

    1. 这就是我应该在Maven的mainClass标签中写的吗?通用域名格式。主要的,重要的拖拽

    答复:

    如果您将包名更正为com。primary,maven将正确添加主类拖动