Java 如何在getClass().getResource()中提供文件的正确路径
这四个问题中有很多,但没有一个和我的问题相似 如果我试图在目录中向上跳转两个文件夹,我总是会得到一个NullPointerException。如果我只跳转一个文件夹,程序就会找到我的.html文件 这是我加载html文件的java部分。该Java文件位于包src中,并且在包应用程序中Java 如何在getClass().getResource()中提供文件的正确路径,java,path,getresource,javafx-webengine,Java,Path,Getresource,Javafx Webengine,这四个问题中有很多,但没有一个和我的问题相似 如果我试图在目录中向上跳转两个文件夹,我总是会得到一个NullPointerException。如果我只跳转一个文件夹,程序就会找到我的.html文件 这是我加载html文件的java部分。该Java文件位于包src中,并且在包应用程序中 @FXML private void initialize() { webEngine = webView.getEngine(); try { webEngine.load(get
@FXML
private void initialize() {
webEngine = webView.getEngine();
try {
webEngine.load(getClass().getResource("../../local/offer/test.html").toExternalForm());
}catch (Exception e) {
e.printStackTrace();
}
}
- src
-application
.java
-bin
-local
-offer
test.html
这是我的文件夹结构。java在文件夹应用程序中。如果我使用../i向上搜索一个文件夹,那么我会在应用程序文件夹的级别上搜索。不,我再次使用../进入一个文件夹,在src文件夹级别上搜索。在我看来,我不能使用local/offer/test.html
所以.././local/offer/test.html在我看来应该是可行的,但事实并非如此
使用“./”表示您在上一个文件夹中搜索,因此使用“./test.html”退出应用程序文件夹,并在第二张图片中显示的文件夹中搜索名为test.html的文件
使用“../../test.html”可以搜索应用程序后面的两个文件夹
另外,getClass().getResource()搜索项目文件夹,而不是类getClass()。getResource(路径)将从类路径而不是文件系统获取资源。是吗?是的,应该是正确的。但它可以工作到上一个文件夹。但是再上一个文件夹,所以上一个文件夹不起作用可能重复,而不是将我的问题标记为重复,这不是真的,请给我一个答案。我必须写什么来代替“../../local/offer/test.html”?您的类路径由
/application/YourClass.java
组成。您不能向上移动超过/
。您需要将资源移到类路径上,或者将它们作为文件而不是类路径资源进行访问。但问题是,它不起作用。。。与.././我应该在文件夹中,如我的第一张图片所示。但这不起作用我也尝试过“local/test.html”,但它也不适用于“../../”项目后面的两个文件夹。例如,您的项目位于文件夹“foo/buzz/application”中,因此从应用程序文件夹进入foo文件夹,但您的test.html位于buzz上,因此它将返回错误。是的,我理解您的意思,但它不起作用。我已经编辑了我的问题,并显示了我的文件夹结构,使其更加清晰。谢谢你