Как открыть файлы с помощью приложения .Jar (Java)?

Сложный вопрос здесь. Как открыть файл в Java таким образом, что при двойном щелчке по файлу он автоматически открывается в приложении Java.

Я делаю музыкальный проигрыватель (первый большой Java-проект для меня), и я понятия не имею, как этого добиться. Когда вы открываете, скажем, файл .mp3, он открывается в любой программе по умолчанию, которую вы для него выбрали (например, в медиаплеере VLC или проигрывателе Windows Media). Я хочу иметь возможность установить файл .jar моего приложения в качестве программы по умолчанию для файлов .mp3, а затем иметь возможность фактически запускать файлы в приложении.

Когда я в настоящее время пытаюсь открыть файл с приложением, я получаю сообщение об ошибке Windows, говорящее: «Это приложение не может быть запущено на вашем компьютере». Но когда я запускаю сам .jar, не пытаясь открыть файл .mp3, он работает нормально.

Кто-нибудь знает, как добиться того, чего я хочу? Спасибо заранее!

---редактировать---

Я не имею в виду, что вы можете выбрать программу по умолчанию для mp3-файла. Проблема в том, что Windows выдает ошибку, показанную выше, и что я не знаю, как справиться с запуском приложения, открыв файл (который не открывается из-за ошибки).


person ImJustACowLol    schedule 05.05.2016    source источник
comment
прямое время на любом mp3-файле. щелкните свойства, и вы сможете выбрать программу по умолчанию. если список выглядит ограниченным, должна быть кнопка поиска программы вручную на вашем компьютере. оттуда вы можете просто найти и выбрать свою программу по умолчанию. загляните в java ant. Кстати, это не в том разделе stackexchange. вероятно, должен быть в суперпользователе или что-то в этом роде   -  person RisingSun    schedule 06.05.2016
comment
Я знаю, что вы можете щелкнуть правой кнопкой мыши и выбрать программу по умолчанию. Проблема в том, что Windows не хочет запускать .jar, когда я пытаюсь запустить jar, пытаясь открыть файл mp3. Кроме того, я не знаю, как обрабатывать запуск с внутренним кодом.   -  person ImJustACowLol    schedule 06.05.2016
comment
Распространите и установите свою программу с помощью Java Web Start. Web Start позволяет зарегистрировать вашу программу с типом файла.   -  person VGR    schedule 06.05.2016


Ответы (2)


Я думаю, проблема в том, что вам нужно открыть файл с .exe , поэтому вы должны использовать оболочку exe (я использую jsmooth: скачать здесь)

НО прежде чем вы это сделаете, вы должны принять эту информацию. Итак, в основном классе «args» — это список информации о том, как он запускается. Если вы открываете файл, первым аргументом массива будет место назначения открытого файла. Поэтому я бы принял это так:

   if (args.length > 0) {
       File f = new File(args[0]);
       start_the_application_with_a_file(f);
   } else {
       start_the_application_without_a_file();
   }
person TheKindOfGoodProgrammer    schedule 05.05.2016
comment
Это звучит как очень хороший способ сделать это. Я знал, что должен использовать Args, но не как ;) Я собираюсь попробовать это завтра, а сейчас я пойду спать. Спасибо за помощь, дружище, сообщу, если получится :) - person ImJustACowLol; 06.05.2016
comment
Это сработало чувак! Я использовал Launch4J, так как JSmooth у меня не очень хорошо работал, а у Launch4j было больше возможностей для переноса .jar. Теперь это работает как шарм. Я бы хотел проголосовать за вас, но у меня еще нет 15 представителей, поэтому я не могу. Как только я это сделаю, хотя. Спасибо друг! - person ImJustACowLol; 06.05.2016
comment
Хорошо, Launch4J тоже хорошая оболочка, я просто использую Jsmooth для упаковки .jar - person TheKindOfGoodProgrammer; 06.05.2016

C:\ProgramData\Oracle\Java\javapath\java.exe -jar "C:\Program Files\YourApp.jar" %* в пакетном файле (.cmd) может сделать это.

person Miguel    schedule 23.10.2019