| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > получит путь к прграмме на различных ОС |
| Автор: Samotnik 8.10.2009, 15:19 |
| Привет. Нужно на Java получить путь к программе (к файлу запускающую эту программу). Т.е. к примеру: нужно java средствами получить путь к Фотошопу, или путь к Ворду, или к Винампу и т.д. При том что нужно это сделать для Windows, Linux, MacOS |
| Автор: sergioK 9.10.2009, 00:16 | ||||||
сначала выясняешь какая ОС
хотя код может и неработать, писал из головы, да и проверь на каждой системе что она дает при вызове
|
| Автор: Samotnik 12.10.2009, 10:46 |
| sergioK, и что это такое ? Вобщем, для Windows я разобрался, там нужно была работа с реестром, c помощью http://www.rgagnon.com/javadetails/java-0480.html Теперь остается вопрос, как тоже самое реализовать на MacOS ? |
| Автор: sergioK 12.10.2009, 11:04 | ||
сорри перепутал отвечал на вопрос из другой ветки здесь |
| Автор: Samotnik 12.10.2009, 11:07 |
да ничего |
| Автор: LSD 13.10.2009, 11:52 |
| Вопрос составлен так, что вообще нефига не понятно. К какой программе нужно получить путь? Откуда вообще берутся эти программы? |
| Автор: AlexeyVorotnikov 13.10.2009, 12:41 |
Не совсем. Что есть имя программы? |
| Автор: Skynin 13.10.2009, 13:13 |
| 2 AlexeyVorotnikov Как понял человек хочет запустить программу установленную на десктопе с набором нужных параметров. Утрировано - сформировать нужные аргументы для java.lang.Runtime.exec |
| Автор: sergioK 13.10.2009, 13:28 | ||||||||
а так не работает ? или это только для винды ?
хотя Я тоже подумал как Skynin т,е , как открыть файл в определенной программе на конкретной ОС, (это другой форум т,е, как сформировать командную строку случае окон ( cmd notepad myFile.txt) к модераторам это надо добавить в список часто задаваемых вопросов, IMHO |
| Автор: LSD 13.10.2009, 13:31 | ||||
Это называется ассоциированая команда. Вообщем и целом это никак не стандартизованно, более того каждая графическая среда может иметь свои настройки. Для Windows это делает так:
Для MacOS узнавай команды на форуме по MacOS. К Java эта проблема отношения не имеет. P.S. Кстати, а http://java.sun.com/javase/6/docs/api/java/awt/Desktop.html#open%28java.io.File%29 не устроит? |
| Автор: Samotnik 13.10.2009, 16:23 | ||
| Вижу, что не совсем понятно обьяснил ... Вобщем вот, как я сделал, для того чтобы открыть Аутлук и ОпенОфис на windows
вот таким образом я запускаю эти программы, на виндовс терь нужно каким то образом запустить на Маках |
| Автор: Skynin 13.10.2009, 18:17 | ||
Узнать точно так же как про "reg query " узнали. Java тут ни при чем. Я кстати только что узнал о такой возможности Windows |
| Автор: LSD 14.10.2009, 14:33 | ||
А если человек пользуется portable версией OpenOffice то будет epic fail Ну и самое главное, это то, что к Java эта проблема отношения не имеет. |
| Автор: Samotnik 14.10.2009, 14:53 | ||||
which solution ?
ну как это ? |
| Автор: LSD 14.10.2009, 15:02 |
Для начала перестать играть в "Штирлиц в застенках гестапо" и наконец рассказать поподробней о проблеме. В чем вообще смысл этого метода, как и зачем он будет вызываться. Потому как решения в лоб кривые и не портабельные. Если для примера взять тот же FAR/Total Commander, то там пользователь может вручную указать программу которой надо открывать тот или иной тип файлов (указав путь к программе и параметры запуска), а если он этого не сделал, то будут использоваться системные ассоциации. |
| Автор: serger 14.10.2009, 15:04 | ||||
У тебя есть шанс открыть новый проект на apache.. Runner4j. ps. Там (на сайте apache) чего-то похожего не видел.. Интересно - пиши дальше. Добавлено через 1 минуту и 30 секунд
Как я понял - он и хочет "использовать системные ассоциации". Я прав? |
| Автор: Samotnik 14.10.2009, 15:16 |
| LSD, Окей, Вадя, вот перед тобой стоит задача. Написать порграмму(в виде: метод, класса, поректа, программы, енама, ...., не важно что) на Java, которая будет выполнять следущее: Пользователь при запуске твоей программы, передает два параметра туда, Файл (который хочет открыть) и Программу (В которой хочет открыть этот файл). И эта твоя порграмма должна работатать на всех ОС. Т.е. Я запускаю твою программу, и ввожу файл : d:\1.jpg и программу, в которой я хочу чтобы файл открылся : (Photoshop Затем клацаю Ентер и передомною открывается Фотошоп, а внем моя картиночка Вот собственно такое легкое заданице |
| Автор: serger 14.10.2009, 15:31 | ||
Ну сделай через справочник. |
| Автор: LSD 14.10.2009, 15:47 | ||
Теперь мы взглянули на эти яйца сбоку, прогресс на лицо Я вообще не понимаю как твоя программа должна устанавливать ассоциации между именем и исполняемым файлом? Напишет тебе юзер: D:\abc.xslt открыть Xalan, и че ты будешь делать? Как узнать где он находится? Как понять что Xalan-J запускается через java.exe? Как узнать формат командной строки Xalan-J? |
| Автор: Samotnik 14.10.2009, 15:51 |
| LSD, нет, это мы не разбираем, это уже пордуманно. т.е. нужно предположить, что ситуация идеальная т.е. картинку открывать - фотошопом, текстовый документ - опенофисом, пдф - пдф ридером. и т.д. |
| Автор: serger 14.10.2009, 16:22 | ||
Если вариантов не очень много, загони в настройки и изучи для каждой платформы.. |
| Автор: Samotnik 14.10.2009, 17:45 |
| ок, вопрос решен. Всем спасибо ! Best reagrds, Andy ! |