#java #desktop
В Windows есть функциональность "Open With" Мне интересно, можно ли создать аналог "Open With" на Java? Допустим, у нам задан файл. Нужно получить список "рекомендованных" программ для открытия файла. Нужно оставить возможность пользователю выбрать произвольную программу. Иначе предложить пользователю скачать программу через интернет. Попытаться открыть файл (так, как указал пользователь).
Ответы
Ответ 1
Кроссплатформенно есть/был проект JDIC - но последний коммит у них там был год назад и страница с загрузками пуста. Для вызова непосредственно под Windows можно воспользоваться функцией из shell32.dll, вызвав ее из командной строки или через JNI. В простейшем случае: Runtime.getRuntime().exec("rundll32.exe shell32.dll,OpenAs_RunDLL c:\\file.txt");Ответ 2
Для Windows вы можете создать из Java-программы exe-шник. Так пользователям будет намного проще. В интернете полно программ, делающих из Java-программы exe-шники. Тут уже было обсуждение.Ответ 3
сам только недавно начал изучать это, приведенный ниже код работает: JFileChooser chooser = new JFileChooser(); // Note: source for ExampleFileFilter can be found in FileChooserDemo, // under the demo/jfc directory in the Java 2 SDK, Standard Edition. ExampleFileFilter filter = new ExampleFileFilter(); filter.addExtension("jpg"); filter.addExtension("gif"); filter.setDescription("JPG & GIF Images"); chooser.setFileFilter(filter); int returnVal = chooser.showOpenDialog(parent); if(returnVal == JFileChooser.APPROVE_OPTION) { System.out.println("You chose to open this file: " + chooser.getSelectedFile().getName()); } извини, не могу разжевать что за что отвечает, так как еще не знаю, но думаю тут найдутся ребята которые смогут.Ответ 4
это не совсем то что вам нужно, но возможно будет полезным: Создаем файлик Test.java с вот таким содержимым: public class Test { public static void main (String []args) { System.out.println("hello world"); } } 1) создаем привязку .java файла к какой-то программе напр. eclipse 1.1) для этого в проводнике выбираем открыть с помощью... 1.2) указываем полный путь до программы и ставим галочку запомнить (чтоб он всегда открывался этой программой) 2.1) запускаем regedit 2.2) открываем ветку HKEY_CLASSES_ROOT\.java 2.3) смотрим значение ключа (Default), у меня это 'java_auto_file' 2.4) ищем в этой же ветке 'java_auto_file', у меня этот ключ имеет примерно следующее содержимое java_auto_file-->shell-->open-->command: (Default)="D:\programming\java\eclipse12\eclipse.exe" "%1" 3) Создаем свою строчку в контекстном меню 3.1) Создаем еще одну ветку с тем же содержимым: java_auto_file-->shell-->Compile-->command (Default)="D:\programming\java\eclipse12\eclipse.exe" "%1" 3.2) Заменяем путь к программе на путь к java компилятору: (Default)="C:\Program Files\Java\jdk1.7.0\bin\javac.exe" "%1" 4) компилируем класс 4.1) в проводнике из контекстного меню нашего файла выбираем пункт "compile" (тот который мы добавили) 4.2) существующий пункт open можно удалить при желании аналогично для .class файла действием по умолчанию можно сделать его запуск
Комментариев нет:
Отправить комментарий