Java linux中的进程执行问题
我想用记事本(使用JAVA)打开一个文件 proc.exec(“记事本”+curDir+“\auto_saved.txt”) 在哪里Java linux中的进程执行问题,java,linux,Java,Linux,我想用记事本(使用JAVA)打开一个文件 proc.exec(“记事本”+curDir+“\auto_saved.txt”) 在哪里 String curDir = System.getProperty("user.home"); curDir=curDir+"/txt-files"; Runtime proc = Runtime.getRuntime(); 这在WIN7中正常工作,但表示未找到“home………\auto_saved.txt”路径。在LIN
String curDir = System.getProperty("user.home");
curDir=curDir+"/txt-files";
Runtime proc = Runtime.getRuntime();
这在WIN7中正常工作,但表示未找到“home………\auto_saved.txt”路径。在LINUX中。
但是如果我将文件保存到(curDir+“\auto_saved.txt”);。。它创建一个文件并将其保存在LINUX中
那么,如何在/home/user/some folder/…中打开文件呢?您希望
“\auto\u saved.txt”
中的
是一个目录分隔符,但在Linux中不是,它只是一个普通字符,可以作为文件名的一部分。使用File.pathSeparator
(java.io.File中的静态字段);它将在Linux/Unix上运行/
,在Windows上运行\
linux上没有记事本应用程序。字符串literal
“\auto\u saved.txt”
不是有效的Java,将导致编译错误。它必须是“\\auto\u saved.txt”
。你确定那是你的真实代码吗?没有错误..n在WIN7中工作正常..对于ubuntu,它的“/auto_saved.txt”\通常是Linux/Unix中的转义字符。它可以在文件名中使用,但必须是双转义的-touch\\file\\\
-创建一个名为\file\.的文件。它在Java中也是转义字符,并且\a
不是有效的转义序列,因此“\auto\u saved.txt”
实际上不会编译。我尝试了这个..String pathWIN7=curDir+“/auto\u saved.txt”;显示..“C:/users/abhishek/txt files/auto_saved.txt字符串pathLINUX=“txt files/auto_saved.txt”;显示..“txtfiles/auto_saved.txt”//表示无需提供“home/user/”路径//但我已将文件保存到”home/user/txt files/auto_saved.txt“proc.exec”(“notepad”+pathWIN7);//如果os.name是windows 7 proc.exec(“notepad”+pathLINUX);//如果os.name是Ubuntu,这是有效的………bt…无法理解为什么..Ubuntu的WINE项目中有一个记事本。但是,它不是标准Ubuntu安装的一部分。您可以检查一下进程是否恢复到快速。当我在shell提示符中输入“notepad a.txt”时,有一个程序会短暂运行“notepad”程序可以在以下软件包中找到:*wine1.2*wine1.0 Try:sudo apt get install“我想知道,如果您尝试在Ubuntu中从java调用notepad,是否也会出现这种情况。