LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 684|回复: 2

请问:JAVA程序中如何跨平台启动另外一个JAVA程序?

[复制链接]
发表于 2005-6-8 10:06:38 | 显示全部楼层 |阅读模式
偶的代码为
                String cmdLine = "/opt/NsDeviceZt/jre/bin/java ...";
                try {
                        Runtime.getRuntime().exec(cmdLine);
                } catch (Exception ex) {
                        ex.printStackTrace();
                }

这里cmdLine仅仅为了演示. 但是,这样的启动代码在windows下可以,在linux下面却不行.
请问有没有更好的启动JAVA程序的方法?

谢谢.
发表于 2005-6-8 14:04:11 | 显示全部楼层
ClassLoader thisLoader = Thread.currentThread().getContextClassLoader();
URLClassLoader cl = URLClassLoader.newInstance(urls, thisLoader);
Thread.currentThread().setContextClassLoader(cl);
Class cls=cl.loadClass(MAINCLASS);
Class[] ptypes = new Class[] { args.getClass() };
Method main =cls.getDeclaredMethod("main", ptypes);
main.invoke(null,new Object[]{args});
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-9 19:56:29 | 显示全部楼层
谢谢你。

可是这样如何设定classpath和启动参数呢?

偶的程序有自带的JRE,JAR包和启动参数,例如:

$NS_HOME/jre/bin/java -classpath "$NS_HOME/lib/comm.jarNS_HOME/lib/zt103.jar" -Dhome.path=$NS_HOME zt.cllient.NSDApp
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表