Java 将Eclipse Headless build注册为Windows服务

Java 将Eclipse Headless build注册为Windows服务,java,eclipse,batch-file,windows-services,nssm,Java,Eclipse,Batch File,Windows Services,Nssm,我目前开发了一个Eclipse应用程序,它也有一个无头构建,可以与其他应用程序集成。我们为应用程序创建了一个.exe。我需要的是,当我们的应用程序安装完成时,无头构建应该注册为窗口服务。使用包含以下内容的批处理文件启动无头构建: set WORKSPACE= java -jar plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar -pluginCustomization plugin_customization.ini -a

我目前开发了一个Eclipse应用程序,它也有一个无头构建,可以与其他应用程序集成。我们为应用程序创建了一个.exe。我需要的是,当我们的应用程序安装完成时,无头构建应该注册为窗口服务。使用包含以下内容的批处理文件启动无头构建:

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模式启动我们的应用程序

到目前为止,我尝试了以下几点:

  • 尝试了
    sc.exe
    命令,但无效
  • 然后我将.bat文件转换为
    .exe
    ,然后尝试
    sc.exe
    (给出错误1053)和
    NSSM
    (可执行路径始终引用而不是我的应用程序)
  • 因此,基本上我需要一种方法将这个
    .bat
    .exe
    文件注册为windows服务,以便它启动我的headless应用程序

    更新:

    我试过这个:

    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" 
    
    但是得到这个


    要将无头Eclipse RCP应用程序作为Windows服务运行,我成功地使用了几年

    作为Windows服务运行Eclipse信息中心(这是一个无头RCP应用程序,包含在所有Eclipse IDE包中)的分步说明:

  • 先决条件
    • 安装了JavaJRE或JDK
    • 安装了一个eclipseide,例如。g
  • 从下载commons-daemon-1.0.15-bin-windows.zip
  • prunsrv.exe从下载的ZIP归档文件的根目录解压缩到Eclipse安装目录中
  • 在Eclipse安装目录中创建包含以下内容的文件
    install\u as\u 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"
  • 双击
    安装为服务.bat

  • 按Windows+R,输入
    服务.msc
    ,然后单击确定
    • =>服务列表应包含Eclipse信息中心
  • 启动服务Eclipse信息中心
  • 在web浏览器中打开
    • =>Eclipse帮助应显示在web浏览器中(类似于)

  • 要卸载该服务,请先停止该服务,然后运行
    prunsrv.exe删除“Eclipse信息中心”

    以Windows服务的形式运行无头Eclipse RCP应用程序,我已成功使用了数年

    作为Windows服务运行Eclipse信息中心(这是一个无头RCP应用程序,包含在所有Eclipse IDE包中)的分步说明:

  • 先决条件
    • 安装了JavaJRE或JDK
    • 安装了一个eclipseide,例如。g
  • 从下载commons-daemon-1.0.15-bin-windows.zip
  • prunsrv.exe从下载的ZIP归档文件的根目录解压缩到Eclipse安装目录中
  • 在Eclipse安装目录中创建包含以下内容的文件
    install\u as\u 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"
  • 双击
    安装为服务.bat

  • 按Windows+R,输入
    服务.msc
    ,然后单击确定
    • =>服务列表应包含Eclipse信息中心
  • 启动服务Eclipse信息中心
  • 在web浏览器中打开
    • =>Eclipse帮助应显示在web浏览器中(类似于)

  • 要卸载该服务,请先停止该服务,然后运行
    prunsrv.exe删除“Eclipse信息中心”

    如果您删除或调整-application#com.example.rcp.product.application,那么它应该适用于您的sc.exe:该服务可以启动,但问题是,如何关闭您的应用程序:您可以发送命令吗(如示例中所示)还是要终止进程?哎呀,我以为您的应用程序是
    sc.exe
    。请将批处理脚本
    sc.exe
    更改为
    eclisec.exe
    ,或者更改您的*.exe文件的调用方式(请参阅我上面的编辑).还是有疑问…我应该把pluginCustomization选项放在哪里?@howgler:尝试了你的解决方案,以实现
    java-jar plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar-pluginCustomization plugin\u customization.ini-application.app.headessapp-data%WORKSPACE%-noExit-ishadless
    但是无法启动服务。请参阅上面的更新。@techie我添加了一个逐步的指令来运行Eclipse Infocenter,它是一个无头RCP应用程序,包含在所有Eclipse IDE包中。我希望这会有所帮助。如果您删除或调整-application#com.example.RCP.product.application,那么它应该适用于您的sc.exe:服务可以启动,b但问题是,如何关闭应用程序:您可以发送命令(如示例中所示)还是要终止进程?哎呀,我以为您的应用程序是
    sc.exe
    。将批处理脚本
    sc.exe
    更改为
    eclipsec.exe
    ,或者如何调用您的*.exe文件(请参阅我上面的编辑).还是有疑问…我应该把pluginCustomization选项放在哪里?@howgler:尝试了你的解决方案,以实现
    java-jar plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar-pluginCustomization plugin\u customization.ini-application.app.headessapp-data%WORKSPACE%-noExit-ishadless
    但是无法启动服务。请参阅上面的更新。@techie我添加了一个分步指令来运行Eclipse信息中心,它是一个无头RCP应用程序,包含在所有Eclipse IDE包中。我希望这能有所帮助。