2012-02-03 45 views
1

我已經創建了一個Java應用程序(運行無限循環)(與許多Java類文件),也使用log4j.jar和`snmp4j.jar? 。爲了運行應用程序,我需要按以下方式提供一些輸入參數:使用JavaService添加Windows服務

C:\APP>java myApp.class arg1 arg2 arg3 arg4 arg5 arg6 

其中myApp.class包含主處理器。

此應用程序在命令行執行下正常工作。但是,我想爲此應用程序創建一個Windows服務,以便它在PC啓動時運行。另外,如果服務因任何原因而關閉,它將在Windows服務工具下重新啓動。

我試圖用JavaService我的目的,通過執行以下命令:

C:\APP>JavaService.exe -install MyService "C:\java\jdk1.6.0.29\jre\bin\server\jvm.dll" -start myApp.class -params arg1 arg2 arg3 arg4 arg5 arg6 
The MyService automatic service was successfully installed 

我可以看到我的MyService下管理工具 - >服務出現

然而,當我做了它開始然後停止:(

Service dialog: 
The MyService on Local Computer started and then stopped. Some services stop automatically if they have no work to do, for example, the Performance Logs and Alerts service. 

A尼永知道爲什麼?

+0

創建服務時,請嘗試「-err D:\ Logs \ javaservice.log」,它會告訴你哪個庫丟失,並且需要使用-Djava.class.path = something.jar添加 – 2013-08-09 17:03:11

回答

1

也許你需要指定類路徑?

爲此,您可以這樣設置:

-Djava.class.path={JDK_HOME}\lib\tools.jar;<your jar 1>;<your jar 2> 

作爲一個例子,我們用一個腳本來安裝JBoss的,類似討論的一個/如下所示: https://community.jboss.org/wiki/JavaService

HTH

+0

PS您可以看到Windows中的事件查看器中來自您的服務的錯誤消息。查看「Windows日誌」,然後「應用程序」。 – davidfrancis 2012-02-03 10:22:20

+0

按照建議嘗試使用-Djava.class.path,但仍無法啓動Windows服務:( – tanlccc 2012-02-03 16:23:52

+0

這真是太遺憾了,您是否在這些Windows事件日誌中查看您的服務中的錯誤? – davidfrancis 2012-02-06 09:00:17

0

首先,如果您使用64位JVM,則必須使用64位JavaService。否則,您將在Windows事件日誌中出現以下錯誤:

由於以下原因,LoadLibrary函數失敗:LoadLibrary不是有效的Win32應用程序。

其次,使用-out-err參數JavaService從java代碼中記錄stdout和stderr。