jsp调用服务器端程序运行。

想用jsp远程启动服务器上的程序,程序是后台计算的,计算结果实时更新到数据库中供查询。
现有的方式是写了一个bean来计算,但是这样很占用tomcat的资源,导致其他人登陆不稳定。想脱离tomcat独立运行。

用的是Runtime.getRuntime().exec()这个。

问题1:通过java直接运行这个方法比如运行画板Runtime.getRuntime().exec("mspaint.exe"); 可以正常打开,
但是通过jsp远程调用的时候就没有界面,任务管理器里可以看到有进程。怎么能让他有界面呢。。。

问题2:计算的程序是启动了自动计算的,用cmd>java -jar ***.jar没有问题,但是通过jsp调用的话 就会自动退出,计算执行了,但是没有执行完毕就退出了,怀疑是jsp网页关闭了就退出了……

实在是没用弄明白怎么回事。求个解决方法。 :)

看到有好多人提问都是怎么提前关闭的。。。我这个是求正常运行的……

服务器是本机对吧。本机访问tomcat 当然没问题,如果需要局域网其他用户通过ip形式
例如:
http://192.168.9.1:8080/prjname/demo**
就无法访问,你测试时候不要用本机测试
Runtime.getRuntime().exec("mspaint.exe");
貌似可以这样。你把exe放在tomcat的jsp目录下
例如:webapps/项目名/mspaint.exe
例如:tomcat 目录是:D:/apache-tomcat-6.0.20/webapps/项目名/mspaint.exe
可以通过:
Runtime.getRuntime().exec("D:/apache-tomcat-6.0.20/webapps/项目名/mspaint.exe");
绝对路径的方式来调用。

Runtime.getRuntime().exec("mspaint.exe");
这是操作本地的资源。。。。
要远程调用方法,去搜这个RMI(Remote Method Invocation)远程方法调用

想用jsp远程启动服务器上的程序,程序是后台计算的,计算结果实时更新到数据库中供查询。
直接创建个后台线程启动任务即可。 而且数据是在一个进程内部

问题1:通过java直接运行这个方法比如运行画板Runtime.getRuntime().exec("mspaint.exe"); 可以正常打开,
但是通过jsp远程调用的时候就没有界面,任务管理器里可以看到有进程。怎么能让他有界面呢。。。 这个不行 不同的进程 除非你把状态数据写到一共享区域(如一个文件 这俩进程都能读)。

问题2:计算的程序是启动了自动计算的,用cmd>java -jar ***.jar没有问题,但是通过jsp调用的话 就会自动退出,计算执行了,但是没有执行完毕就退出了,怀疑是jsp网页关闭了就退出了…… 直接开一个后台线程 调用即可 不需要Runtime.getRuntime().exec("mspaint.exe");

Runtime.getRuntime().exec("mspaint.exe"); 这个调用启动的是你应用程序部署的那个机器的画板啊 你远程当然看不见了啊