Java 将Eclipse Headless build注册为Windows服务
我目前开发了一个Eclipse应用程序,它也有一个无头构建,可以与其他应用程序集成。我们为应用程序创建了一个.exe。我需要的是,当我们的应用程序安装完成时,无头构建应该注册为窗口服务。使用包含以下内容的批处理文件启动无头构建: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
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
命令,但无效.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李>
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
服务.msc
,然后单击确定
- =>服务列表应包含Eclipse信息中心
- =>Eclipse帮助应显示在web浏览器中(类似于)
要卸载该服务,请先停止该服务,然后运行
prunsrv.exe删除“Eclipse信息中心”
以Windows服务的形式运行无头Eclipse RCP应用程序,我已成功使用了数年
作为Windows服务运行Eclipse信息中心(这是一个无头RCP应用程序,包含在所有Eclipse IDE包中)的分步说明:
- 安装了JavaJRE或JDK
- 安装了一个eclipseide,例如。g李>
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
服务.msc
,然后单击确定
- =>服务列表应包含Eclipse信息中心
- =>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包中。我希望这能有所帮助。