Java Runtime.getruntime中没有打开notepad.exe有什么问题
当尝试执行包含以下代码的servlet时Java Runtime.getruntime中没有打开notepad.exe有什么问题,java,windows,Java,Windows,当尝试执行包含以下代码的servlet时 Runtime rt = Runtime.getRuntime(); Process p = rt.exec("notepad.exe"); 它不会在windows server 2003和Tomcat 5环境中启动应用程序 但正在windows任务管理器中将进程创建为notepad.exe 在windows xp和tomcat 6环境中启动记事本 我需要在WindowsServer2003和Tomcat5上工作 提前感谢换句话说,它是在您的本地开发机
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("notepad.exe");
它不会在windows server 2003和Tomcat 5环境中启动应用程序
但正在windows任务管理器中将进程创建为notepad.exe
在windows xp和tomcat 6环境中启动记事本
我需要在WindowsServer2003和Tomcat5上工作
提前感谢换句话说,它是在您的本地开发机器(WinXP+Tomcat6)上启动的,而不是在生产/测试服务器(Win2K3+Tomcat5)上启动的 您是否意识到Java Servlet代码在服务器机器上运行,而不是在客户端机器上运行,在现实世界中,客户端机器通常是通过网络连接的两台物理上不同的机器?记事本是在服务器机器(webserver(Tomcat)运行的地方)打开的,而不是在客户端机器(webbrowser运行的地方)打开的。它在本地开发环境下工作,只是因为webserver和webbrowser都在物理上相同的机器上运行 登录到Win2K3环境,您将看到记事本在那里打开
如果您真的打算使用
运行时#exec()
在客户机上启动notepad.exe
(除此之外,我看不出任何商业原因),那么您需要为客户机提供一个Java应用程序,该应用程序具有HTML/JSP页面的风格或由HTML/JSP页面提供。这将下载到客户端计算机并在那里执行。换句话说,它是在您的本地开发计算机(WinXP+Tomcat6)上启动的,而不是在生产/测试服务器(Win2K3+Tomcat5)上启动的
您是否意识到Java Servlet代码在服务器机器上运行,而不是在客户端机器上运行,在现实世界中,客户端机器通常是通过网络连接的两台物理上不同的机器?记事本是在服务器机器(webserver(Tomcat)运行的地方)打开的,而不是在客户端机器(webbrowser运行的地方)打开的。它在本地开发环境下工作,只是因为webserver和webbrowser都在物理上相同的机器上运行
登录到Win2K3环境,您将看到记事本在那里打开
如果您真的打算使用
运行时#exec()
在客户机上启动notepad.exe
(除此之外,我看不出任何商业原因),那么您需要为客户机提供一个Java应用程序,该应用程序具有HTML/JSP页面的风格或由HTML/JSP页面提供。这将被下载到客户机并在那里执行。我认为您的tomcat在后台作为服务运行。当运行记事本时,它将以tomcat运行时使用的相同登录执行。很可能这是与桌面登录不同的登录,因此记事本不会显示在该桌面上
在您的开发环境中,您通过直接执行包装器脚本来启动tomcat。尝试将其作为服务安装,您将遇到与XP相同的问题
顺便说一句:我不认为运行AppServer并在服务器上调用notpad有什么意义。你真的确定这个设计吗?我认为你的tomcat是作为后台服务运行的。当运行记事本时,它将以tomcat运行时使用的相同登录执行。很可能这是与桌面登录不同的登录,因此记事本不会显示在该桌面上 在您的开发环境中,您通过直接执行包装器脚本来启动tomcat。尝试将其作为服务安装,您将遇到与XP相同的问题
顺便说一句:我不认为运行AppServer并在服务器上调用notpad有什么意义。你真的确定设计吗?如果你能告诉我们启动notepad.exe的要求,那么我们可以向你建议解决方案/方法。如果你能告诉我们启动notepad.exe的要求,然后我们可以向您建议一种解决方案/方法。您是否尝试过创建一个.bat文件来启动记事本并在rt.exec()中调用它?它有区别吗?重新格式化的代码;如果不正确,请还原。您是否尝试创建一个.bat文件来启动记事本并在rt.exec()中调用它?它有区别吗?重新格式化的代码;如果不正确,请还原。