是否有人在使用JavaExe運行Windows服務時遇到問題,並且有解決方案嗎?Windows服務在JavaExe下啓動失敗:更新
除了服務示例,示例3,示例5和示例23以外,JavaExe示例均可用。 在每種情況下,都會創建Windows服務,但任何嘗試啓動服務都會彈出錯誤消息:
「系統找不到指定的文件。」
沒有爲中的service包含以下注冊表項:
名稱:ImagePath的
類型:REG_EXPAND_SZ
數據: 「\ JavaExe \ JavaExe \ DOC \例子\ 3 - 服務\ Example3.exe」 __RunService__
如果我使用參數__RunService__從命令行運行Example3.exe,那麼Java進程會在崩潰之前啓動並短暫運行。
這些例子在JavaExe下載中都是自包含的,所以很難看到可能存在缺失的庫。背景:JavaExe(http://devwizard.free.fr/html/en/JavaExe.html)似乎實現了一種合理的方法,允許從作爲服務運行的另一個Java程序調用Java應用程序。 Windows禁止訪問桌面服務,所以JavaExe樹立服務和應用程序的Java程序之間的套接字連接,每個運行作爲一個用戶進程,所列出的位置: http://msdn.microsoft.com/en-us/library/windows/desktop/ms683502(v=vs.85).aspx
的Windows 7 64位(但它的失敗在XP同樣的方式[參見下面的更新])
Java版本1.7.0_45
-
UPDATE:
開發商回覆我的電子郵件,並告知,32位和64位Java版本正在困惑。
我理清了這一點。從Winxp(x86)上正確運行的 JavaExe .zip下載(默認全部爲32位)獲得的.exe和.jar文件運行的Example3服務現在可以正常運行。
對於x64計算機,需要使用軟件包的compilx64.bat腳本重新編譯jar文件。 (並使用JaveExe.exe的64位版本的文檔中所述)。
我做這些事情,但示例3服務仍無法啓動,並出現錯誤, 「系統找不到指定的文件。 「
從compilx64.bat構建的.jar文件與x86版本基本相同,但幾個 包含幾個字節的.class文件。我認爲代碼必須是指本地庫?也許有些沒有找到?但是哪些?
當我鍵入SC QC示例3獲得:
類型:10 WIN32_OWN_PROCESS
的start_type:2 AUTO_START
ERROR_CONTROL:1師範大學
BINARY_PATH_NAME:「[... ...文件路徑] \ JavaExe \ JavaExe \ doc \ examples \ 3 - Service \ Example3。EXE」 __RunService__
LOAD_ORDER_GROUP:0
DISPLAY_NAME:JavaExe:示例3
依賴性:事件日誌
SERVICE_START_NAME:本地系統
哪裏來自這個註冊表項? 如果您在控制檯DOS中鍵入:「sc qc XXX」 其中XXX是您的服務的名稱,您看到了什麼? – bb67
此錯誤似乎來自您安裝JavaExe的示例。在運行示例之前解壓縮JavaExe.zip嗎?爲什麼創建後沒有找到文件? –
你的「文件路徑」是一個臨時文件夾?在啓動服務之前,是否仍然存在Example3.exe?什麼是完整的「文件路徑」? – bb67