我想停止在端口8080上运行的服务器。在我的java应用程序中,每当应用程序关闭时,也需要停止此服务器。但除了手动停止服务器外,我找不到任何解决方案。有没有办法停止带有代码的服务器?顺便说一句,我使用的是Windows 7
答案 0 :(得分:1)
你是如何开始SymmetricDs的?作为Windows服务,作为WAR还是嵌入在您的应用程序中?
查看用户指南似乎如果您可以将其嵌入代码中,您应该能够直接启动和停止它。 user guide中的更多详细信息以及以下示例代码。
import org.jumpmind.symmetric.SymmetricWebServer;
public class StartSymmetricEngine {
/**
* Start an engine that is configured by two properties files. One is
* packaged with the application and contains overridden properties that are
* specific to the application. The other is found in the application's
* working directory. It can be used to setup environment specific
* properties.
*/
public static void main(String[] args) throws Exception {
SymmetricWebServer node = new SymmetricWebServer(
"classpath://my-application.properties");
// this will create the database, sync triggers, start jobs running
node.start(8080);
// this will stop the node
node.stop();
}
}
答案 1 :(得分:0)
try {
// Execute a command to terminate your server
String command = "command to stop your server";
Process child = Runtime.getRuntime().exec(command);
} catch (IOException e) {
}
答案 2 :(得分:0)
由于我没有看到代码,如何创建服务器和接受连接,如下所示 我已经给你以下ooptions.you应该尝试实施第一, 剩下的选择不会保证是否会杀死正确的程序。
public void stopServer() { threadReference.interrupt(); } while(!Thread.interrupted()) { // Accept Server Connection try { Thread.sleep(1000); } catch(InterruptedException ex) { Thread.currentThread().interrupt(); } } Runtime.getRunTime().addShutDownHook(new Thread() { public void run() { try { ref.stop(); } catch (IOException e) { // close server socket // other clean up e.printStackTrace(); } } });
你需要在Runtime.getRuntime() TASKKILL / F / IM 中指定它,或者有一个 jps ,最好杀死相关进程。< / p>
try
{
Process p = Runtime.getRuntime().exec("TASKKILL /F /IM communicator*");
BufferedReader in =
new BufferedReader(new InputStreamReader(p.getInputStream()));
String result = null; while ((result= in.readLine()) != null) { if ( "SUCCESS".equals(result.substring(0,7)) { break; } } } catch (IOException e) { e.printStackTrace(); }
答案 3 :(得分:0)
为什么不检查Cargo?它提供了一个Java API来启动/停止Java容器。您可以在主页中找到支持的容器列表。