Я разработал приложение с графическим интерфейсом в java с помощью netbeans (я использую Apache netbeans 9 и JDK 11).Также я добавил несколько изображений в этот кадр.Эти изображения в NetBean'ах хороши, но я не вижу эти изображения в реальном приложении, которое запускаю через командную строку.
Так вот как я добавил изображения в приложение
JButton saveTxtTool = new JButton(new ImageIcon((getClass().getProtectionDomain().getCodeSource().getLocation().toString() + "morsecoder/save-text-large.png").replaceAll("file:/", "")));
Из-заэта проблема я пробовал эту строку, чтобы получить путь, который передается в ImageIcon.
System.out.println(getClass().getProtectionDomain().getCodeSource().getLocation().toString().replaceAll("file:/","")+"morsecoder/undo.png");
И так я запускаю приложение без сетевых компонентов с помощью командной строки.
set Gantt_Generator_v5.0="C:\Program Files (x86)\GANTT_GENERATOR_V5.0"
start java -cp dist\MorseCoder.jar morsecoder.MorseCoder
После запуска приложения в обеих средах IDE и CMD, вот результаты, которые я получил.
//in netbeans IDE
C:/Users/Seniru/Documents/MorseCodeConverter/NetBeansProjects/MorseCoder/build/classes/morsecoder/undo.png
//in cmd
C:/Users/Seniru/Documents/MorseCodeConverter/NetBeansProjects/MorseCoder/dist/MorseCoder.jar/morsecoder/undo.png
Итак, я понял, что пути после этих тестов разные.Поэтому мой вопрос в том, как решить эту проблему и что я здесь делаю неправильно.