Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Runtime.getruntime中没有打开notepad.exe有什么问题_Java_Windows - Fatal编程技术网

Java Runtime.getruntime中没有打开notepad.exe有什么问题

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上工作 提前感谢换句话说,它是在您的本地开发机

当尝试执行包含以下代码的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上工作


提前感谢

换句话说,它是在您的本地开发机器(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()中调用它?它有区别吗?重新格式化的代码;如果不正确,请还原。