我在 windows7下面已经实现了java调用可执行文件,这里实现的是打开notepad记事本。请问各位大侠,代码在linux是需要做怎样的改动呢?代码如下:
import java.lang.*;public class Process { /**  * @param args add by yfx March 21, 2011  */ public static void main(String[] args) { // TODO Auto-generated method stub String command="cmd /c start C://a.txt";  Runtime runtime=Runtime.getRuntime(); Object pro=null; try{ pro = runtime.exec(command); System.out.println("finished: "+ pro); }catch(Exception e){ System.out.println("Error Open txt!!"); } }
}
我想,在 linux下面。 String command="cmd /c start C://a.txt"; 需要改为Linux下对应的命令。假如,我把文件a.txt放在/usr/java/bin/下面。请问我应该怎么改动程序?谢谢各位大侠了。

解决方案 »

  1.   

    不用改吧,只要改文件路径吧?java不是跨平台吗
      

  2.   

    "cmd /c start C://a.txt"; 需要改为Linux下对应的命令。假如,我把文件a.txt放在/usr/java/bin/下面
    只要该为
    "gedit /usr/java/bin/a.txt"用linux默认的gedit编辑器打开文件,前提是当前用户得拥有对于该文件的阅读权
      

  3.   

    你好。谢谢你的答复。
    那请问入如果我要调用自己用C写的一个可执行文件怎么办?
    我在linux下工作时调用:  ./SearchFile "study"
    那我在Runtime.getRuntime.exec();里面应该怎么写呢? 
      

  4.   

    c中exec()的功能就是创建一个新进程(如果我没有记错的话)来执行参数中的Shell命令
    所以跟你在Shell中执行你的C文件的命令是一样的,
    exec(“./SearchFile study”)
    不过如果你的C文件不在java类的当前目录下,SearchFile的路径得更改一下,如果实在不行就用绝对路径吧
      

  5.   

    我现在执行exec(./SearchFile "study" "2011-01-12 00:00:00")本身没有问题了,但是对于时间中间的空格, exec函数默认在空格前后加引号分开了。看到大多数都是说采用加引号的方式解决。但是我那样子解决了后,参数个数是对了,但是"2011-01-10 00:00:00" 就变为"2011-01-10" "00:00:00" ,请问我怎么解决呢?