linux下java调用可执行文件的问题

guolover 2011-03-22 06:17:02
我在 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/下面。请问我应该怎么改动程序?谢谢各位大侠了。
...全文
2492 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
guolover 2011-03-24
  • 打赏
  • 举报
回复
我现在执行exec(./SearchFile "study" "2011-01-12 00:00:00")本身没有问题了,但是对于时间中间的空格, exec函数默认在空格前后加引号分开了。看到大多数都是说采用加引号的方式解决。但是我那样子解决了后,参数个数是对了,但是"2011-01-10 00:00:00" 就变为"2011-01-10" "00:00:00" ,请问我怎么解决呢?

[Quote=引用 6 楼 jiangsq12345 的回复:]
引用 5 楼 guolover 的回复:

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

引用 4 楼 jiangsq12345 的回复:
"cmd /c start C://a.txt"; 需要改为……
[/Quote]
jiangsq12345 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 guolover 的回复:]

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

引用 4 楼 jiangsq12345 的回复:
"cmd /c start C://a.txt"; 需要改为Linux下对应的命令。假如,我把文件a.……
[/Quote]
c中exec()的功能就是创建一个新进程(如果我没有记错的话)来执行参数中的Shell命令
所以跟你在Shell中执行你的C文件的命令是一样的,
exec(“./SearchFile study”)
不过如果你的C文件不在java类的当前目录下,SearchFile的路径得更改一下,如果实在不行就用绝对路径吧
qm4050 2011-03-23
  • 打赏
  • 举报
回复
不用改吧,只要改文件路径吧?java不是跨平台吗
guolover 2011-03-23
  • 打赏
  • 举报
回复
你好。谢谢你的答复。
那请问入如果我要调用自己用C写的一个可执行文件怎么办?
我在linux下工作时调用: ./SearchFile "study"
那我在Runtime.getRuntime.exec();里面应该怎么写呢?

[Quote=引用 4 楼 jiangsq12345 的回复:]
"cmd /c start C://a.txt"; 需要改为Linux下对应的命令。假如,我把文件a.txt放在/usr/java/bin/下面
只要该为
"gedit /usr/java/bin/a.txt"

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

用linux默认的gedit编辑器打开文件,前提是当前用户得拥有对于该文件的阅读权
guolover 2011-03-22
  • 打赏
  • 举报
回复
为什么没有人回答呢?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧