我已经按照加载资源文件的方式使用了getClass.getResource(path).代码片段在这里:
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();
Run Code Online (Sandbox Code Playgroud)
我已经在eclipse中使用层次结构配置它(在源代码下有一个名为SwingDemo的文件夹.在SwingDemo中有我的java文件以及资源文件)...
当我在日食上运行时,一切运行正常.但是一旦我尝试从cmd行运行应用程序,就会出现空指针异常.
命令行部署层次结构如下:
文件夹: D:\Work\Java Progrms\SwingDemo
层次:
首先,我SwingDemo从命令行(javac CustomDialog.java)在文件夹中编译了这个文件.然后我将一步回到Java Programs文件夹(正如我在.java类中提到的那样)并使用着名的程序运行应用程序
java SwingDemo.CustomDialog
Run Code Online (Sandbox Code Playgroud)
我之前使用新的FileInputStream("path")时,我曾经遵循类似的步骤.做这种方式后我得到空指针异常..
我认为getClass().getResource(url)无法从特定目录加载文件.这就是我将资源放在与我的java文件相同的目录中的原因.它在Eclipse中运行良好.但是当我从命令行运行时,为什么这会出错.