私はJava SEアプリケーションを作成しました。私はLinuxマシン上で動作するrunnable jarをエクスポートしました。ウィンドウ上で実行される同じjarファイルを使用してexeファイルを作成しました。Eclipse Jetty Serverシングルインスタンスアプリケーション
exeを何回か実行すると、複数のインスタンスが作成されています(タスクマネージャのjavaw.exe)どうしたらいいですか?
私はそれを防止したいと思います。そのためには、まずサーバーが稼働しているかどうかを確認しようとしていますが、それはstatic main()
メソッド内で使用しています。 ServerクラスのisRunning()
メソッドは非静的です。
WindowsとLinux OSの両方でアプリケーションを実行する必要があります。
コード:
public static void main(String[] args) {
try {
if(Server.isRunning()){ // compilation error
}
Server server = new Server();
ServerConnector connector = new ServerConnector(server);
connector.setPort(8080);
server.addConnector(connector);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
// Initialize javax.websocket layer
ServerContainer wscontainer = WebSocketServerContainerInitializer.configureContext(context);
// Add WebSocket endpoint to javax.websocket layer
wscontainer.addEndpoint(EventSocket.class);
server.start();
server.dump(System.err);
server.join();
} catch (Throwable t) {
logger.error("Server Error : " + t.getMessage(), t);
}
}
私の説明は長いですが、助けてくれることを願っています: 'Server server = new Server();'の直後に 'System.out.println(" Server started "); 'cmd'か' terminal'からjarファイルを実行してください。このようにしてサーバーが稼働している場合は、print outステートメントの直後にカーソルが点滅します。そうでない場合、例えばWindowsでは 'C:\ Windows \ System32> 'と表示され、サーバサービスが停止または終了したことを示します。 –
または[この参照](http://stackoverflow.com/questions/27231413/how-do-i-know-that-jetty-started-successfully-with-application-instance-from-an) –