我遵循使用getClass.getResource(path)
加载资源文件的方式。的代码片段是在这里:通过getClass()加载文件getResource()
String url = "Test.properties";
System.out.println("Before printing paths..");
System.out.println("Path2: "+ getClass().getResource(url).getPath());
FileInputStream inputStream = new FileInputStream(new File(getClass().getResource(url).toURI()));
i_propConfig.load(inputStream);
inputStream.close();
我已经在Eclipse中层次结构配置它(在源有一个名为SwingDemo文件夹中SwingDemo有我的Java文件以及资源文件)。...
- SRC
- SwingDemo
- CustomDialog.java
- Test.properties
- SwingDemo
当我在Eclipse上运行的一切,这是运行良好。但只要我尝试从CMD行空指针异常的应用正在发生..
命令行部署层次结构如下所示:
文件夹:D:\Work\Java Progrms\SwingDemo
层次:
- SwingDemo
- CustomDialog.java
- Test.properties
所有我编译的命令行SwingDemo
文件夹内的文件(javac的CustomDialog.java
)的第一个。然后,我移动一步回Java程序文件夹中(正如我前面提到的.java类里面的包),并通过著名的
java SwingDemo.CustomDialog
我曾经跟随,当我用新的FileInputStream类似的措施(“路径运行的应用程序“)。 做完这种方式后,我得到空指针例外..
我认为getClass().getResource(url)
无法加载文件从一个特定的目录。这就是为什么我把资源放在与我的java文件相同的目录中。它在Eclipse中运行良好。但是当我从命令行运行时,为什么会出现错误。
帮我:“如果你包你的应用程序加入到一个jar文件中,或者如果你通过网络加载这些类,它将无法工作。“ - >您需要从文件中获取InputStream。 –