Java 带有EclipseIDE的System.getProperty(“user.dir”)

Java 带有EclipseIDE的System.getProperty(“user.dir”),java,swing,jtextpane,Java,Swing,Jtextpane,我一直在zetcode.com 我已经完成了基本Swing组件II,即JTextPane组件。 在本例中,一个HTML文档被加载到内存中并放置到文本窗格中。 为了查找该文件,zetcode.com使用: String cd = System.getProperty("user.dir") + "/"; textPane.setPage("File:///" + cd + "test.html"); 我选择的IDE是EclipseKepler 我已经为这个示例的类编写了代码,并创建了HTML文档

我一直在
zetcode.com

我已经完成了基本Swing组件II,即
JTextPane
组件。 在本例中,一个HTML文档被加载到内存中并放置到文本窗格中。 为了查找该文件,zetcode.com使用:

String cd = System.getProperty("user.dir") + "/";
textPane.setPage("File:///" + cd + "test.html");
我选择的IDE是EclipseKepler

我已经为这个示例的类编写了代码,并创建了HTML文档,正如zetcode.com在页面上所显示的那样。我已经将HTML文件放置在与使用它的类相同的源文件夹和包中。 但是当我运行代码时,我听到Windows系统错误的声音,
JFrame
弹出,文本窗格中没有任何文本

编辑01: 我将包命名为“com/zetcode/swingtutorial/basiccomponents/”。 我尝试过使用getClass.getResource(“/com/zetcode/swingtutorial/basiccomponents/test.html”) 我想我一定打对了,因为我没有收到IOException

编辑02: 还有一件有趣的事: 在zetcode的系统中,他们使用了“File://”,这导致Windows播放错误声音。 但当我尝试“File://”时,没有错误声音播放。你认为那只是他们的打字错误吗? 无论哪种方式,我的html文档仍不会显示在窗格中:

你知道我会做错什么吗

非常感谢你的帮助

试试这个:

textPane.setPage(YourClass.class.getResource("test.html"));
如果在包装中

textPane.setPage(YourClass.class.getResource("/packagename/test.html"));
试试这个:

textPane.setPage(YourClass.class.getResource("test.html"));
如果在包装中

textPane.setPage(YourClass.class.getResource("/packagename/test.html"));
System.getProperty(“user.dir”)

为您提供根上下文位置或项目位置文件夹,或者您可以说JVM启动时的当前目录 相应地给出路径或交替 试着这样加载

String pathOfHtmlFile = Thread.currentThread().getContextClassLoader()
                              .getResource("yourHtmlFile").getPath();
textPane.setPage(pathOfHtmlFile);
如果文件位于类路径中。

System.getProperty(“user.dir”)

System.getProperty("user.dir")
为您提供根上下文位置或项目位置文件夹,或者您可以说JVM启动时的当前目录 相应地给出路径或交替 试着这样加载

String pathOfHtmlFile = Thread.currentThread().getContextClassLoader()
                              .getResource("yourHtmlFile").getPath();
textPane.setPage(pathOfHtmlFile);
如果文件位于类路径中

System.getProperty("user.dir")
返回启动应用程序的“工作文件夹”。在Eclipse中,我相信工作目录是顶层项目文件夹(不在src中),或者它位于包含编译的.class文件的文件夹中。尝试将文件复制到这些文件夹中,然后查看它何时工作


返回启动应用程序的“工作文件夹”。在Eclipse中,我相信工作目录是顶层项目文件夹(不在src中),或者它位于包含编译的.class文件的文件夹中。尝试将文件复制到这些文件夹中,看看它什么时候能工作。

相关:“为了找到文件,zetcode.com使用:
String cd=System.getProperty(“user.dir”)
user.dir
是查找
文件的一种脆弱方式,你会说getClass.getResource()有更好的方法吗?@CindyStarfall我会使用
getResource
作为应用程序资源(您随应用程序提供的资源)。相关:“为了查找文件,zetcode.com使用:
String cd=System.getProperty(“user.dir”)
user.dir
是查找
文件的一种脆弱方式,你认为getClass.getResource()是更好的方法吗?@CindyStarfall我会使用
getResource
查找应用程序资源(你随应用程序提供的资源)。查看文件夹目录,我注意到Eclipse在matching binaries文件夹中为我保留了一份test.html副本。查看文件夹目录,我注意到Eclipse在matching binaries文件夹中为我保留了一份test.html副本。使用此系统,我得到了几乎相同的结果-一个空文本窗格。我知道我键入的URL必须是正确的-因为如果我故意键入错误,我会看到异常发生。使用此系统,我得到的结果几乎相同-一个空文本窗格。我知道我键入的URL必须是正确的,因为如果我故意键入错误,我会看到异常发生。