使用Eclipse IDE的System.getProperty(" user.dir")

时间:2014-08-08 12:57:35

标签: java swing jtextpane

我已经在zetcode.com

上浏览了Java Swing教程

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

String cd = System.getProperty("user.dir") + "/";
textPane.setPage("File:///" + cd + "test.html");

我选择的IDE是Eclipse Kepler

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

编辑01: 我已将该软件包命名为" com / zetcode / swingtutorial / basiccomponents /"。 我尝试过使用getClass.getResource(" /com/zetcode/swingtutorial/basiccomponents/test.html") 我想我必须正确键入这个,因为我没有得到IOException。

编辑02: 这是另一个有趣的事情: 在zetcode的系统中,他们使用了" File:///",这导致Windows播放错误声音。 但是当我尝试" File://"时,没有播放错误声音。 D'你认为这只是他们的错字? 无论哪种方式,我的HTML文档仍然没有显示在窗格上。 :S

你知道我做错了什么吗?

非常感谢你的帮助!

3 个答案:

答案 0 :(得分:2)

试试这个:

textPane.setPage(YourClass.class.getResource("test.html"));

如果它在包中

textPane.setPage(YourClass.class.getResource("/packagename/test.html"));

答案 1 :(得分:2)

System.getProperty("user.dir");

为您提供根上下文位置或项目位置文件夹,或者您可以在启动JVM时说出当前目录 因此给出路径或交替 尝试以这种方式加载

String pathOfHtmlFile = Thread.currentThread().getContextClassLoader()
                              .getResource("yourHtmlFile").getPath();
textPane.setPage(pathOfHtmlFile);

如果文件在类路径中。

答案 2 :(得分:0)

System.getProperty("user.dir")

返回启动应用程序的“工作文件夹”。在Eclipse中,我认为工作目录是顶级项目文件夹(不在src中),或者它位于包含已编译.class文件的文件夹中。尝试将文件复制到这些文件夹,看看它是否有效。

相关问题