将Eclipse Headless构建注册为Windows服务

问题描述:

我目前开发了一个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

要运行一个无头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