String cmds[] = new String[] { "cmd", "/c","C:\Test.txt" };
Runtime.getRuntime().exec(cmds);
目前,我使用上面的代码在本地打开一个txt文件。但是,它会被记事本打开,不会保持原来的格式。我想用记事本++打开默认来解决这个问题。请告诉我处理此案的方法。谢谢。
您可以使用Desktop.getDesktop().open(file)
,但它需要默认的系统应用程序来打开指定的文件。
这个 API 的优点是它的平台独立性。
但是,如果出现以下情况,您确实需要彻底考虑您将要做什么:
.txt
已安装记事本++,但不是文件的默认程序来自WVrock的附加信息
我想指出的是,可以使用edit()而不是open()来用系统默认的编辑应用程序打开它而不是打开应用程序。请注意,普通用户不知道如何更改默认编辑应用程序,通常在 Windows 中将其设置为记事本。
尝试这个:
ProcessBuilder pb = new ProcessBuilder("Notepad++.exe", "myfile.txt");
pb.start();
或者
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("C:\\path\\to\\notepad++.exe C:\\path\\to\\file.txt");
例如,如果 notepad++ 位于C:\Windows\notepad++.exe
:
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("C:\\Windows\\notepad++.exe C:\\test.txt");
转到您的记事本++ 属性并查看路径
try {
String cmds[] = new String[] { "cmd", "/c","C:\\Program Files (x86)\\Notepad++\\notepad++.exe " , "C:\\Test.txt" };
Runtime.getRuntime().exec(cmds);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
右键单击该txt
文件并转到属性并将打开更改为notepad++
。现在运行您的代码,您现在可以看到该文件在 notepad++ 中打开。
第一种情况是您的计算机notepad
用作默认文本编辑器,通过执行上述步骤,它将更改为notepad++
{ "cmd", "/c","notepad++ C:\Test.txt" };
应该可以工作,但是如果您没有在 PATH 中添加记事本++,则该命令将是
{ "cmd", "/c","fullpath-to-notepad++.exe C:\Test.txt" };