我的Java应用程序将检测文件扩展名并使用wordpad在Windows中打开它,如下所示:
public static Process Display_File(String File_Path)
{
String Command,Program,Suffix=File_Path.toLowerCase();
Process process=null;
if (Suffix.endsWith("txt") || Suffix.endsWith("json")) Program="C:\\Program Files (x86)\\Windows NT\\Accessories\\word_pad.exe ";
Command=Program+"\""+File_Path+"\"";
try { process=Runtime.getRuntime().exec(Command); }
catch (Exception e) { e.printStackTrace(); }
return process;
}
但它在Mac上不起作用,我知道Mac上有TextEdit.app,那么如何更改上面的代码才能在Mac上运行呢?
更改后,它看起来像这样:
public static Process Display_File_On_Mac(String File_Path)
{
String Command,Program,Suffix=File_Path.toLowerCase();
Process process=null;
if (Suffix.endsWith("txt") || Suffix.endsWith("json")) Program="/Applications/TextEdit.app ";
Command=Program+"\""+File_Path+"\"";
try { process=Runtime.getRuntime().exec(Command); }
catch (Exception e) { e.printStackTrace(); }
return process;
}
但我收到了这个错误:
java.io.IOException: Cannot run program "/Applications/TextEdit.app": error=13, Permission denied
如何解决?
答案 0 :(得分:0)
在El-capitan上,给出了以下路径:
Program="open /Applications/TextEdit.app/Contents/MacOS/TextEdit";
您可以从终端窗口导航到TextEdit.app
文件夹,并确保在尝试之前将可执行文件放在正确的位置。
此外,您需要更改命令的设置,如下所示:
Command = Program+ " "+File_Path;
答案 1 :(得分:0)
启动 macOS Catalina 系统应用程序移至 /System/Applicityions 文件夹:https://support.apple.com/HT210650
所以,TextEdit 的新路径是 /System/Applications/TextEdit.app/Contents/MacOS/TextEdit