3

Я сделал текстовый редактор на Java, и я хочу сделать его текстовым редактором по умолчанию. Аналогично Windows, когда по умолчанию в качестве редактора используется Блокнот, значок которого отображается во всех текстовых файлах, дважды щелкните эти файлы и откройте их в Блокноте.

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

Есть ли какая-либо библиотека в java для решения этой задачи принятия файла ввода таким образом?

2 ответа2

3

Я сделал текстовый редактор ... хочу сделать его текстовым редактором по умолчанию ..

Разверните его с помощью Java Web Start и объявите интерес к соответствующим типам файлов в файле запуска.

... принять файл, введенный только FileChooser.

JWS предоставляет имя файла, представляющее интерес для main(String[]) . Мы можем создать File из строки и взять его оттуда. Вот демо. из JNLP API FileService , объявляющего интерес в .zzz формате.

3

Если вы не хотите использовать Java Web Start, как предложил Эндрю, и хотели бы узнать, как Windows работает с приложениями по умолчанию, вот краткое руководство:

Когда вы щелкаете правой кнопкой мыши -> Открыть с помощью ... и устанавливаете что-то как приложение по умолчанию, в HKEY_CLASSES_ROOT создается значение реестра с именем "somefileextension_auto_file" и ключом "/shell/open/command" (так, HKEY_CLASSES_ROOT\somefileextension_auto_file\shell\Open\command). Строковое значение по умолчанию для этого ключа - это команда оболочки, которая выполняется при двойном щелчке по файлу типа somefileextension . Созданное значение по умолчанию выглядит примерно так:"c:\program files\somepath\test.exe" %1 где% 1 - это переменная, содержащая полный путь к файлу, который был дважды нажат.

Если вы хотите программно сделать JAR-файл приложением по умолчанию для определенного расширения файла, вам необходимо создать ключ реестра в HKEY_CLASSES_ROOT\somefileextension_auto_file\shell\Open\command со значением по умолчанию, аналогичным следующему:

java -jar c:\somewhere\yourJarFile.jar %1

и ваша программа должна будет определить, когда ей был передан аргумент командной строки, используя public static void main(String[] args) где args[1] будет путем к файлу, по которому щелкнули. Если был задан аргумент командной строки, ваша программа должна автоматически попытаться использовать его в качестве входного файла.

Примечание. Это действительно не следует делать вручную, поскольку Java была разработана для кроссплатформенности, и поэтому существуют кроссплатформенные решения ( https://stackoverflow.com/tags/java-web-start/info ), но, похоже, вопрос Автор интересовался тем, как Windows работает с приложениями по умолчанию. Может быть, я помогу другому читателю. Кто знает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .