#java
#java
Вопрос:
Я знаю, как вручную связать тип файла с .файл jar:
assoc .ext=filetype
ftype filetype="C:Program FilesJavajre6binjavaw.exe" -jar "pathtojarfileYourJarFile.jar" "%1"
В настоящее время я использую Runtime.exec (), чтобы попытаться выполнить эти команды, но я получаю Access is denied.
от команды assoc. Я предполагаю, что мне нужны права администратора для запуска assoc, как это можно сделать из приложения Java?
Комментарии:
1. Есть ли у вашего приложения графический интерфейс? Можете ли вы распространять его с веб-сайта?
2. У этого нет графического интерфейса, я просто проводил быстрый тест, чтобы посмотреть, смогу ли я сделать это с Java.
3. Я бы рекомендовал вам сделать это из установщика, собственного кода или пакетного файла, который выполняется с повышенными правами. Смотрите мои комментарии ниже под моим ответом.
Ответ №1:
попробуйте cmd / c assoc или что-то подобное. Это встроенная команда командного процессора
Комментарии:
1. Я решил переключиться с ProcessBuilder на Runtime.exec(), и cmd / c устранил мои проблемы. Теперь я получаю ошибки отказа в доступе из команды assoc.
2. Да, я не удивлен, что это привилегированная команда. Затем у вас есть 2 варианта: запустить Java с повышенными правами (плохая идея с точки зрения безопасности) или вызвать службу или другой процесс, который постоянно выполняется в машинном коде. Или отказаться (это третий вариант).
3. Я решил использовать метод .bat-файла. Работает как по волшебству.
Ответ №2:
Это должно иметь связи с контекстом environnements. попробуйте использовать полный путь к файлу в assoc
Комментарии:
1. Каков полный путь к файлу? Я не смог найти его в папке system32.
2. MJB сказал, что assoc — это встроенная команда, похоже, так оно и есть.