Я выполнил способ загрузки файла ресурсов с помощью 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();
Я настроил его в eclipse с помощью иерархии (под источником есть папка SwingDemo. В SwingDemo есть мой java файл, а также файл ресурсов)...
- ЦСИ
- SwingDemo
- CustomDialog.java
- Test.properties
- SwingDemo
Когда я запускаю это на eclipse, все работает нормально. Но как только я пытаюсь запустить приложения из cmd, возникает исключение нулевого указателя.
Иерархия развертывания командной строки выглядит следующим образом:
Папка: D:\Work\Java Progrms\SwingDemo
Иерархия:
- SwingDemo
- CustomDialog.java
- Test.properties
Прежде всего, я скомпилировал этот файл внутри папки SwingDemo
из командной строки (javac CustomDialog.java
). Затем я перехожу на один шаг обратно в папку Java Programs (как я уже упоминал об этом пакете внутри класса .java) и запускаю приложения, используя знаменитый
java SwingDemo.CustomDialog
Я использовал следующие шаги, когда ранее использовал новый FileInputStream ( "путь" ). После выполнения этого способа я получаю исключение нулевой указатель.
Я думаю, что getClass().getResource(url)
не может загрузить файл из определенного каталога. Поэтому я поместил ресурс в тот же каталог, что и мой java файл. Он отлично работал в Eclipse. Но почему это дает ошибку, когда я запускаю из командной строки.