我正在处理链接到Java项目的大型存储库(在Eclipse上运行),有时(通常在进行文本搜索时),Eclipse停止工作。
如果我在那种状态下“硬关闭”它,并且如果我启动了Tomcat,则问题在于它在退出前不会停止tomcat。
当我再次启动Eclipse时,它将显示Tomcat已停止(不是因为当我硬关闭Eclipse时它没有停止tomcat),并且如果我尝试再次启动它,则会出现以下错误:< / p>
重新启动它的唯一方法是重新启动计算机。.我承认这有点烦人。.
您知道是否有办法在Eclipse中停止我的“虚拟运行” tomcat服务器,还是每次发生时都必须重新启动计算机? (我的计算机没有管理员权限,无法使用任务管理器杀死进程)
非常感谢
答案 0 :(得分:1)
停止tomcat的标准机制是在关闭端口上发送关闭命令。通常,关闭端口是8005。您可以通过手动发送命令来停止服务器:
echo "SHUTDOWN" | nc -w 2 127.0.01 8005
SHUTDOWN
如果您无权访问这些命令,则可以使用Java编写一个简单的应用程序:
public static void main(String[] args) throws IOException {
final InetSocketAddress shutdownAddress = new InetSocketAddress(Inet4Address.getLoopbackAddress(), 8005);
try (Socket socket = new Socket()) {
socket.connect(shutdownAddress);
try (OutputStream out = socket.getOutputStream()) {
out.write("SHUTDOWN".getBytes(StandardCharsets.US_ASCII));
}
}
}
PS:在Linux上,您还可以发送信号SIG_INT:kill -2 <PID>