Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX+;SpringBoot,无法加载css_Java_Css_Javafx - Fatal编程技术网

JavaFX+;SpringBoot,无法加载css

JavaFX+;SpringBoot,无法加载css,java,css,javafx,Java,Css,Javafx,我需要一个帮助来了解我的项目中发生了什么,不管怎样,我有带springboot的javafx: 我的文件夹结构如下: 所以我想从我的java/controller文件夹访问,我需要我的css文件,它位于resources文件夹下的css文件夹中 我尝试了所有可能的方法,加载我的css,但除了: 通过fxml直接加载css(我希望避免) 使用此代码也可以工作,但仅在IDE中,如果我创建JAR,它将不再工作: File f = new File("src/main/resources/css/mai

我需要一个帮助来了解我的项目中发生了什么,不管怎样,我有带springboot的javafx:

我的文件夹结构如下:

所以我想从我的java/controller文件夹访问,我需要我的css文件,它位于resources文件夹下的css文件夹中

我尝试了所有可能的方法,加载我的css,但除了:

通过fxml直接加载css(我希望避免) 使用此代码也可以工作,但仅在IDE中,如果我创建JAR,它将不再工作:

File f = new File("src/main/resources/css/main.css");
paneRoot.getStylesheets().add("file:///" + f.getAbsolutePath().replace("\\", "/"));
当我检查f.exists()时,我得到了true,因此路径是确定的,但当我使用此选项时:

paneRoot.getStylesheets().add(getClass().getResource("src/main/resources/css/main.css").toExternalForm());

在我使用.toExternalForm()的第一行代码中,它不起作用,程序崩溃报告空指针

现在我真的不知道这里有什么问题,我尝试了两个不同的IDE-s,我尝试了清除现金,重新封装和清理应用程序,但每次都是相同的问题


如果我需要提供进一步的代码,我只需要理解这一点。

src
是源文件夹。为什么您甚至希望它在运行时出现?您应该尝试类似于
getClass().getResource(“/css/main.css”).toExternalForm()
(路径是相对于类路径解析的)。要进行故障排除,您需要检查构建文件夹(而不是源文件夹)和jar文件(从命令行,do
jar tf myfile.jar
)的内容。为了清楚起见,我尝试了几乎所有可能的路径,我最后离开的路径只是其中一个尝试,我甚至尝试了您在这里展示的这个路径。然而,我发现了问题,问题是我重命名了应用程序,尽管看起来一切正常,但出于某种原因,我无法正确加载文件,重新创建新的应用程序,并进行简单的测试,并且一切正常。
paneRoot.getStylesheets().add("src/main/resources/css/main.css");