我遵循使用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。 –