Использовать приложение Java в качестве программы по умолчанию для определенного типа файлов? - PullRequest
9 голосов
/ 09 марта 2012

Я создал текстовый редактор на Java и упаковал его в файл jar с помощью Netbeans. Сейчас я создал текстовый файл с расширением «.text». У меня Windows 7, поэтому, используя окно свойств, я изменил программу открытия по умолчанию на файл jar моего текстового редактора.

Теперь, когда я дважды щелкаю файл с расширением «.text», в окнах появляется диалоговое окно с сообщением «{имя файла} не является допустимым приложением win32».

Пожалуйста, помогите мне из этого ..

Спасибо.

Ответы [ 3 ]

11 голосов
/ 09 марта 2012

Проблема в том, что файл JAR выбран в качестве «приложения по умолчанию». Однако JAR-файлы обычно , а не исполняемые. То есть файл JAR не является допустимым приложением Windows. Не имеет значения, имеет ли само расширение JAR приложение, связанное с ним по умолчанию, потому что "Открыть глагол " is not используется рекурсивно в других определениях" Open verb ".

Вместо

  1. Создайте пакетный файл (".BAT") (или небольшую оболочку EXE), который вызывает java (или javaw, в зависимости от ситуации) и используйте эту исполняемую оболочку в качестве программы "Открыть с помощью". (Это будет иметь раздражающее промежуточное окно консоли, если используется командный файл.) Или ,
  2. Измените реестр , чтобы "Открытый глагол" для расширения запускал JAR - java (или javaw).

В конце любая форма должна выглядеть примерно так: javaw -jar TheJarFile.jar "%1%". (Обратите внимание, что javaw является исполняемым файлом, а TheJarFile.jar является , а не исполняемым.)

См. java - средство запуска приложений Java , чтобы узнать, как использовать java / javaw.

0 голосов
/ 09 марта 2012

Запустите Jar, используя Java Web Start . Файл запуска предоставляет возможность установить связь типа файл / тип контента. Вот демоверсия . файловых сервисов , что ..

.. предлагает пользователю связать расширение файла .zzz (просто тип файла, который вряд ли будет конфликтовать с существующими ассоциациями файлов) типа контента text/sleepytime. ..

Чтобы сделать это во время выполнения в приложении JWS, посмотрите IntegrationService, представленный в 1.6.0_18 +.

JWS предназначен для работы в Windows (и OS X & * nix).

0 голосов
/ 09 марта 2012

Может быть потому, что .text не является исполняемым файлом.

попробуйте использовать это ..

Runtime.getRuntime().exec("cmd.exe /C file");

Это откроет ваш файл с программой по умолчанию.

Обновление: Сначала я запутался, может быть, я не правильно прочитал ваш вопрос.Я думал, что ваш исполняемый файл .text напрямую из кода Java ..

Runtime.getRuntime().exec("file.text"); // Дает ошибку CreateProcess error = 193,% 1 не является допустимым приложением Win32

Поэтому я предложил открытьэто с помощью cmd (как в ответе).

Но, читая ваш сценарий, кажется, что windows не может выполнить сам jar.

Чтобы сделать ваш jar исполняемым, попробуйте это ..

java -jar yourjarfile.jar ....

...