Powershell JAR可执行文件占用实例

问题描述 投票:1回答:1

我尝试编写一个powershell脚本来运行我的Jar,这只是一个使用tomcat catalina servlet的简单的hello world spring web mvc应用程序。问题是执行我的Jar文件后,powershell实例被servlet占用。这意味着我无法运行连续命令->在本地主机上打开chrome:8080。

我当前的Powershell脚本:

java -jar .\helloworld-0.0.1-SNAPSHOT.jar

# doesnt get executed due to the servlet occupation of the ps instance
Start-Process "chrome.exe" "http://localhost:8080" 

是否可以在同一powershell实例中运行第二个命令,还是需要打开另一个ps实例?如果可以,我该怎么办?

powershell execution nonblocking
1个回答
2
投票

java.exe执行Java代码将运行代码同步,即以blocking方式运行。因此,直到服务器关闭后才到达Start-Process调用,这显然不是目的。

您有两个基本选择来进行呼叫异步

  • 使用Start-Process新窗口中运行命令(仅Windows):
Start-Process
  • [使用后台或线程作业(# Opens the server in a *new window* (Windows only) Start-Process java '-jar .\helloworld-0.0.1-SNAPSHOT.jar' Start-Job [v6 +]),它在不可见的后台进程或线程中运行命令,您可以使用Start-Job cmdlet进行监视和管理:
Start-ThreadJob

使用Start-ThreadJob获取作业的输出,并使用*-Job停止作业(从而停止服务器)。

© www.soinside.com 2019 - 2024. All rights reserved.