2013-03-15 6 views
6

Я создаю приложение java swing, и мне нужно установить мою программу как программу по умолчанию для расширения файла .mcsd (MIME-тип text/mcsd). Этот должен работать с окнами, и было бы неплохо, если бы он работал и на OS X/Linux. Я несколько новичок в java (3 или 4 месяца), поэтому, пожалуйста, не бомбардируйте меня разного рода экспертными разговорами.Связанный тип файла с Java Swing application

Я видел associating a custom file extension with java app in windows, но я бы предпочел не использовать Java Web Start. Если возможно, я также хотел бы знать, как установить значок этого типа файла. Я нашел exe4j как способ создания .exe и планирую использовать его, но если это не лучший инструмент для конвертирования в exe, или кто-то знает что-то лучше, не стесняйтесь говорить мне. Другое дело: мне нужно получить данные из этого файла после открытия программы.

Так что мой вопрос: как это сделать?

+0

Потому что я хотел бы иметь собственный установщик, который просто устанавливает программу, не открывая веб-страницу или что-то еще. Если это не так, как мы начинаем работать, то я рад его использовать. – KFox

+0

Могу ли я сделать это с помощью 'openConnection()' на объекте URL? и где я могу найти учебное пособие по JNLP и JWS, отличному от docs.oracle.com, я считаю, что эти учебники немного трудно читать (это не сбивает с толку, внешний вид только делает мою голову). – KFox

+0

А как получить данные/путь к файлу, который был открыт? – KFox

ответ

8

Разверните приложение. с Java Web Start:

JWS предоставляет множество привлекательных функций, включая, но не ограничиваясь, заставки, интеграции рабочих столов, ассоциации файлов, автоматического обновления ..

Смотрите file services demo. для примера JNLP, объявляющий интерес к типу файла .zzz.

Это как объединение объявляется в JNLP:

<association 
    extensions="zzz" 
    mime-type="text/sleepytime" /> 

JWS поставляется Oracle и работает на Windows, * Никс & OS X.

..но я бы предпочел не использовать Java Web Start. Потому что я хотел бы иметь собственный установщик, который просто устанавливает программу, не открывая веб-страницу или что-то еще. Если это не так (веб-запуск), то я рад его использовать.

JWS работает через Интернет или в сети. Но если вы можете вызвать открытие URL-адреса (JNLP) с рабочего стола, не нужно открывать браузер.

Могу ли я это сделать, используя openConnection() по объекту URL?

Я бы использовал API Desktop или BasicService.

Desktop.getDesktop().browse(uri); 

boolean result = basicService.showDocument(url); 

Как указано в BasicService demo.

В Java 6+, вызов, чтобы показать другой файл запуска веб-запуска (например BasicService.showDocument(another.jnlp)) будут переданы непосредственно JavaWS, без окон браузера не появляется.

Я ожидаю, что это всегда верно для API Desktop, учитывая, что клиент JWS является потребителем по умолчанию для этого типа файла.