我现在做Swing的桌面操作程序,需要能够在Linx系统中运行。想用如下代码实现,打开Linx系统中的文件。但是总是不执行。但也不报错。这是怎么加速,哪位高众人指点一下。 
其中imagePath是所要打开文件的物理路径。 String str[] = {"/bin/sh", "-c", "ls> "+imagePaht};
 Runtime.getRuntime().exec(str);
我相是/bin/sh", "-c", "ls> 这个写的不正确,但不知道该怎么写。(没有接触过Linx)

解决方案 »

  1.   

    这种写法不怎么好吧?
    还有,RunTime.getRuntim().exe(str);
    什么返回类型都不知道的...
      

  2.   

    Runtime.getRuntime().exec("cat " + imagePaht);
      

  3.   

    Runtime.getRuntime().exec("cat " + imagePaht);  这个方法试了 不行。
      

  4.   

    Runtime.getRuntime().exec("more /home/username/yourFile"); 
    然后从输出流中取得内容就行了。但是这个为什么不用java的文件流做呢?
    你具体想干什么呢?我看你的命令没看懂你的意思。
      

  5.   

    我想实现在Windows系统中的:Runtim.getRuntime.exec("cmd.exe/c start"+"c:\\word.doc");的这个功能。在Linx系统中实现。
      

  6.   

    1)打开word这样的界面程序,假如office2003在如下路径
    Runtime.getRuntime().exec("C:\\Program Files\\Microsoft Office\\OFFICE11\\winword");2) 杀死word进程
    Runtime.getRuntime().exec("tskill winword");3) xp下查看d盘文件 Process p = Runtime.getRuntime().exec("dir d:");
    InputStream is = p.getInputStream(); byte[]buf = new byte[512];
    StringBuffer buffer = new StringBuffer();
    while(is.read(buf)!=-1){
    buffer.append(new String(buf));
    }
    System.out.println(buffer.substring(0));综述:类似1,2这样的程序,没有中间输出,直接调用即可
    类似3这样的程序,有文本输出,就用输出流即可.例子中是直接打印出来,类似的你可以用输出流记录到log中
      

  7.   

    这样写就行了:
    Runtime.getRuntime().exec("/bin/sh -c 'vim /path/sample'"); 
    要用\"或者单引号把命令扩起来的。
      

  8.   

    我是不是这样写:
    Runtime.getRuntime().exec("/bin/sh -c 'vim "+imagepaht+"'");
    就OK。 
      

  9.   

    呵呵
    在使用Runtim.exec()方法时,不要想像地把它当作为一个shell解释器,其实它比shell解释器弱很多。
      

  10.   

    对于顶楼的例子,最起码,管道定向符号“>“不是运行参数。肯定看不到结果的。
    至于不报错么,因为命令确实得到了执行,因为/bin/sh这个执行程序是有的。至于错误信息,那是输出到你启动的那个进程的标准错误流的,但是你没有任何地方得到了这个流,所以看不到。
      

  11.   

    没明白楼主问题。
    Java的Swing程序,如果想在Linux系统上运行,一般情况下,在Linux系统上安装JRE就可以了。
    如果JRE安装了,但,Swing程序还无法运行,一方面要看环境变量是否设置好了,另一方要看是不是Swing程序还需要什么特殊的包,比如汉字字体什么的。如果Swing程序能够正常运行。那么,打开文件,这个词就比较难于确定了。
    一般讲打开文件,应该是指访问某个文件的内容,最常见的就是文本文件了。当然,你打开个什么图片文件,那我也没啥话说。如果楼主所说的是我现在说的这种情况的话。那其实应该是使用Java来访问某个文件。再结合Swing编程的话,应该是,如果是文本文件,那么应该在界面上显示文本文件的文字内容;图片文件应该是显示图片的内容。等等。看了楼主的示例代码后,感觉楼主好像是在调用控制台的命令,貌似是想运行另外的什么程序。
    如果楼主是想用Java调用系统的控制台命令,或者采用这种方式运行其他程序的话。难度不大,简单看下JDK的API文档,那个方法的使用是很简单的事情。如果你想用Java调用Linux系统上已经安装的绘图程序来打开一个图片的话(注意,不是用Java来打开)。
    命令行的参数应该有那个绘图程序的路径以及图片文件的路径,如果情况很变态的话,还要注意环境变量。
      

  12.   

    方法一:Runtime   rt=Runtime.getRuntime();   
    File   f=new   File();   
    rt.exec(file.getAbsolutePath()); 这样只能对那些EXE文件起作用,像TXT或者RAR这样的不可执行的会出现IOEXCEPTION;对txt文件要用rt.exec("NotePad.exe   c:\\website.txt");   其他的类推;
    方法二:自动找到关联的外部程序,可以把要执行的文件的路径信息利用java的文件读写,写到一个批处理文件里,
    然后从java里执行改批处理文件的内容就可以了:
    批处理文件比如说是1.bat   
    内容是:F:\1.txt   
    然后   
        try{     
                  Process   p   =   Runtime.getRuntime().exec("C://1.bat");   
                  p.waitFor();   
        
              }catch(Exception   ee){   
                  ee.printStackTrace();   
              } 
      

  13.   

    这个问题我已经解决了。
    如果是在Windows环境下运行实现打开某个格式的文件,会自动用他的编辑软件打开。比如说我要想打开一个doc文件,可以直接用office打开。
     Runtime.getRuntime().exec("cmd /c \"\"" + path + "\"\"\"");
    其中的path就是我所说的要打开doc文档的物理路径。当然了可以是其他任何格式的文件。exec("cmd /c \"\"" + path + "\"\"\"");这个命令会自动查找与你打开文件格式相对应的编辑软件打开。但是在Linx系统中没有像Windows的那样的方便省事的功能。
    比如说我用的是红旗Linux系统。安装的是永中office.在永中office中有一个集中的文件格式主是eio.像在Windows系统中的xls,doc,ppt等格式在linux中都可以用eio格式保存。
    像以上我所说的格式如果想实现Winodows系统中的功能就必须使用。
      String str[] ={"/bin/sh","-c","eio "+path};
      pcs =  Runtime.getRuntime().exec(str); 
    例如:"/bin/sh","-c",这个是在Linux系统中调用命令行的正确语法,而后跟的eio是一个命令,意思是用永中office打开文件。
    如果是图片则用:
      String str[] ={"/bin/sh","-c","gwenview "+path};
      pcs =  Runtime.getRuntime().exec(str); 
    如果是打开压缩文件,则用:
       String str[] ={"/bin/sh","-c","ark "+path};
      pcs =  Runtime.getRuntime().exec(str); 
    .如上所说的eio,gwenview,ark都是打开相应格式文件的软件。如果你的linxu系统没有安装eio。则打开不会成功。
      

  14.   

    嗯,好,学习。
    不过,这样可能看不到终端输入吧,比如用ark的时候。
      

  15.   

    搞那么复杂干嘛,最简单的!!
    Runtime.getRuntime().exec("gedit "+file);
      

  16.   

     
    请问openoffice.org3 这个是什么简码