【问题标题】:How to specify the correct URL to a file in a Eclipse project如何为 Eclipse 项目中的文件指定正确的 URL
【发布时间】:2015-08-11 07:45:16
【问题描述】:

好的。所以我已经尝试了几个小时知道,而且我知道有很多关于这个主题的主题,例如this 线程。但是我已经尝试了该线程和其他一些线程中建议的所有内容,但没有成功。

我的项目层次结构(和包层次结构)如下所示: myProject/src/com/company/app/view

我试图链接到项目中另一个文件的类位于最后一个目录“view”中。

我试图链接的文件被放置在 “myProject/src/com/company/app/”并命名为“stylesheet.css”。

如果我执行System.out.println(new java.io.File("").getAbsolutePath());,我会得到以下路径:“C:\Users\xxxx\workspace\myProject”。这不应该意味着我应该从 myProject 指定一个绝对路径吗?在这种情况下,我的样式表的路径将是“src/com/company/app/stylesheet.css”,对吗?但是,这是行不通的。我还尝试在该 URL 的开头添加一个斜杠,但也没有用。

我正在尝试将样式表添加到班级中的 JavaFX DialogPane。像这样: dialogPane.getStylesheets().add("stylesheet.css"); 我也试过这个: dialogPane.getStylesheets().add(getClass().getResource("stylesheet.css").toExternalForm());

第一个版本永远不会工作,但如果我将 stylesheet.css 放在与我的班级相同的位置,第二个版本就可以工作。但是当我尝试在适当的位置找到样式表时,例如:

dialogPane.getStylesheets().add(getClass().getResource("src/com/company/app/stylesheet.css").toExternalForm());

我收到了NullPointerException

如果我可以像在 HTML 中那样从父目录指定相对于类位置的路径,例如“../stylesheet.css”,那就是答案。不过好像不行。

我做错了什么?

【问题讨论】:

  • 试过 dialogPane.getStylesheets().add(getClass().getResource("com/company/app/stylesheet.css").toExternalForm());?
  • 啊!这实际上有效......谢谢!为什么不需要“src”部分?
  • java项目的根目录通常是src文件夹。这就是为什么通常包声明也以 com 开头的原因。我将添加此作为答案。请接受。
  • 通常情况下,您的 IDE 将为您的源代码和编译代码创建独立的目录结构。 (Eclipse 默认为srcbin,因此您可能会找到一个包含已编译代码和资源的bin 文件夹。)当然,当您运行应用程序时,您是从编译后的代码而不是源代码运行的代码,所以你的工作目录是bin。它下面有一个结构,它或多或少反映了 under src 的结构(不是直接在项目目录下)。

标签: java eclipse url javafx path


【解决方案1】:

尝试从路径com/company/app/styleshe‌​et.css获取资源,即

dialogPane.getStylesheets().add(getClass().getResource("com/company/app/styleshe‌​et.css").toExternalForm());

【讨论】:

    猜你喜欢
    • 2010-09-17
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多