2017-08-04 47 views
1

我目前開發了一個Eclipse應用程序,該應用程序還具有可用於與其他應用程序集成的無頭構建。我們爲我們的應用程序創建了一個.exe。我需要的是當我們的應用程序安裝完成時,無頭構建應該註冊爲窗口服務。將Eclipse Headless構建註冊爲Windows服務

set WORKSPACE= 
java -jar plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar -pluginCustomization plugin_customization.ini -application myapplication.app.HEADLESSAPP -data %WORKSPACE% -noExit -isHeadLess 

當我們運行這個bat文件就開始我們在非UI模式應用:無頭打造的是使用批處理文件,它包含以下開始。

我嘗試下面的事情至今:

  1. 嘗試sc.exe命令,但並沒有工作。
  2. 然後,我將我的.bat文件轉換爲.exe,然後嘗試sc.exe(給出錯誤1053)和NSSM(可執行路徑始終指代nssm.exe而不是我的應用程序)。

所以基本上我需要一種方法來註冊這個.bat.exe文件作爲Windows服務,以便它推出我的無頭的應用程序。

UPDATE:

試過這樣:

set SERVICE_NAME=TESTSERVICE 
set SERVICE_TITLE="TESTSERVICE" 

set ECLIPSE_DIR=%~dp0 

"%~dp0TESTSERVICE.exe" install %SERVICE_TITLE% --Startup=auto --StartMode=java --StartImage="%ECLIPSE_DIR%eclipsec.exe" --StartPath="%ECLIPSE_DIR%\" ++StartParams="-noSplash -pluginCustomization plugin_customization.ini -application com.eu.ales.hvac.ipm.headless.app.HEADLESSIPMDT -data \"%ECLIPSE_DIR%workspace\" -configuration \"%ECLIPSE_DIR%configuration\"" --LogPath="%ECLIPSE_DIR%\" --LogLevel="Error" --LogPrefix="service" 

,但得到這個

error

回答

0

要運行一個無頭Eclipse RCP應用程序作爲Windows服務我成功地使用Apache Commons' prunsrv.exedownload here)數年。

步驟一步指令運行Eclipse信息中心(這是一個無頭RCP應用幷包含在所有的Eclipse IDE包)作爲Windows服務:

  1. 前提
  2. 下載commons-daemon-1.0.15-bin-windows.ziphttp://www.apache.org/dist/commons/daemon/binaries/windows/
  3. 提取prunsrv。EXE從下載的ZIP壓縮文件的根目錄到Eclipse安裝目錄
  4. 在Eclipse的安裝目錄下創建文件install_as_service.bat有以下內容:

    set INFOCENTER_PORT=8088 
    set INFOCENTER_TITLE="Eclipse Infocenter" 
    for %%i in ("%~dp0") do (set INFOCENTER_DIR=%%~dpi) 
    set INFOCENTER_DESCRIPTION=Port: %INFOCENTER_PORT%, Location: %INFOCENTER_DIR% 
    "%~dp0\prunsrv.exe" install %INFOCENTER_TITLE% --Description="%INFOCENTER_DESCRIPTION% " --Startup=auto --StartMode=exe --StartImage="%INFOCENTER_DIR%eclipsec.exe" --StartPath="%INFOCENTER_DIR%\" ++StartParams="-noSplash#-application#org.eclipse.help.base.infocenterApplication#-data#\"%INFOCENTER_DIR%info_center_workspace\"#-configuration#\"%INFOCENTER_DIR%info_center_configuration\"#-vmargs#-Dserver_port=%INFOCENTER_PORT%#-Xms420m#-Xmx420m#-XX:MaxPermSize=256m" --StopMode=exe --StopTimeout=300 --StopImage="%INFOCENTER_DIR%eclipsec.exe" --StopPath="%INFOCENTER_DIR%\" ++StopParams="-noSplash#-application#org.eclipse.help.base.infocenterApplication#-data#\"%INFOCENTER_DIR%info_center_workspace\"#-configuration#\"%INFOCENTER_DIR%info_center_configuration\""#-command#shutdown --LogPath="%INFOCENTER_DIR%\" --LogLevel="Error" --LogPrefix="service"
  5. 雙擊install_as_service.bat

  6. Press Windows + R,進入services.msc並單擊OK
    • =>服務列表應該包括Eclipse的信息中心
  7. 啓動服務Eclipse的信息中心
  8. 在Web瀏覽器打開http://localhost:8088/help/index.jsp

要卸載服務,先停止服務,然後運行prunsrv.exe delete "Eclipse Infocenter"

+0

@howgler你能顯示提供一個工作的例子...? – techie

+0

如果您刪除或修改了_-application#com.example.rcp.product.application_,那麼它應該適用於您的_sc.exe_:服務可以啓動,但問題是如何關閉您的應用程序:是否可以發送命令(如示例中所示)還是要殺死進程? – howlger

+0

糟糕,我以爲你的應用程序是'sc.exe'。將批處理腳本「sc.exe」更改爲「eclipsec.exe」或調用* .exe文件的方式(請參閱上面的編輯)。 – howlger