У меня есть Java-приложение для настольных компьютеров, которое я разработал в NetBeans, который я почерпнул для распространения среди студентов. Внутри этого zip-файла у меня есть .jar, каталог «lib», содержащий баннер swing-layout, и каталог, который я назвал «исходными файлами», который содержит все текстовые файлы, необходимые для программы.Открытие файлов, расположенных в каталоге java jar, а не в текущем рабочем каталоге
Все отлично работает, если файл баночка дважды щелкнул, но при запуске из командной строки (java -jar MyApp.jar
), он может найти только «исходники,» каталог если сначала перейдите в каталог, файл прежде чем запускать команду, то, что некоторые ученики забывают делать. По-видимому, нет способа изменить текущий рабочий каталог из моего кода. Путь к «исходным файлам» указан в моем коде как относительный путь , предполагая, что я в папке MyApp. Итак, что я могу сделать, чтобы программа могла запускаться из командной строки без необходимости cd в содержащую директорию? Можно ли добавить это в файл манифеста?
Эта проблема сталкивается в основном с учащимися, использующими Linux, но на Mac это то же самое. Я предполагаю, что это то же самое в Windows, но я думаю, что ни один из студентов с Windows не запускает его из командной строки.
Как вы получаете доступ к своим ресурсам в своем коде? – Dici
BufferedReader f = новый BufferedReader (новый InputStreamReader (новый FileInputStream (имя файла), «UTF-8»)); где filename - относительный путь: sourcefiles/xxxxx. Файл jar для запуска программы, java-библиотека и папка sourcefiles находятся в папке, которую я затем застегиваю, чтобы отправить ученикам. Я не хотел, чтобы исходные файлы были включены в банку, поскольку они являются ресурсами, которые могут быть изменены программой. Этот путь, казалось, работал для всего, кроме как из командной строки. (Это студенты-гуманитарии, некоторые более технологичные, чем другие). – Numa