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

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

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

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

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

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

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

4个回答

服务器是本机对吧。本机访问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");
绝对路径的方式来调用。

xzqminxian
xzqminxian 谢谢楼上的
大约 8 年之前 回复
xzqminxian
xzqminxian 谢了,看你写的挺认真的, 不过我的问题我还没整明白 顺道谢谢楼下的~
大约 8 年之前 回复

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

xzqminxian
xzqminxian jsp的代码是在tomcat上的 对于服务器来说不是本地么…… 我找找rmi的说明
大约 8 年之前 回复

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

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

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

xzqminxian
xzqminxian 谢了,没弄明白怎么改。回头再琢磨吧
大约 8 年之前 回复

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

xzqminxian
xzqminxian 这个我明白,问题就是我在应用程序部署的机器上也看不见,这么说。我访问localhost,启动之后,在机器上只能看见进程,看不见窗口
大约 8 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐