Я хочу открыть Блокнот в моей Java-программе. Предположим, что у меня есть одна кнопка, если я нажму эту кнопку, появится блокнот. Как я могу реализовать этот случай?
Я хочу открыть Блокнот в моей Java-программе. Предположим, что у меня есть одна кнопка, если я нажму эту кнопку, появится блокнот. Как я могу реализовать этот случай?
Я хочу открыть Блокнот в моей Java-программе. Предположим, что у меня есть одна кнопка, если я нажму эту кнопку, появится блокнот. У меня уже есть имя файла и каталог.
Как мне реализовать этот случай?
Предполагая, что вы хотите запустить программу windows notepad.exe
, вы ищете exec
функцию. Вы, вероятно, хотите вызвать что-то вроде:
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("C:\\path\\to\\notepad.exe C:\\path\\to\\file.txt");
Например, на моей машине блокнот находится по адресу C:\Windows\notepad.exe
:
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("C:\\Windows\\notepad.exe C:\\test.txt");
Это откроет блокнот с файлом test.txt, открытым для редактирования.
Обратите внимание, что вы также можете указать третий параметр для exec
, который является рабочим каталогом для выполнения из - таким образом, вы можете запустить текстовый файл, который хранится относительно рабочего каталога вашей программы.
Попробуйте
if (Desktop.isDesktopSupported()) {
Desktop.getDesktop().edit(file);
} else {
// dunno, up to you to handle this
}
Убедитесь, что файл существует. Спасибо Andreas_D, который указал на это.
Используя SWT, вы можете запустить любую программу. Если вы хотите эмулировать двойной щелчок по тексту в окнах, это возможно не только с помощью обычной JRE. Вы можете использовать нативную библиотеку, такую как SWT, и использовать следующий код для открытия файла:
org.eclipse.swt.program.Program.launch("c:\path\to\file.txt")
Если вы не хотите использовать стороннюю библиотеку, вы должны знать и знаете, где находится notepad.exe (или он виден в PATH):
runtime.exec("notepad.exe c:\path\to\file.txt");
Apache common-exec - хорошая библиотека для обработки выполнения внешних процессов.
UPDATE: Более полный ответ на ваш вопрос можно найти здесь