将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模式应用:无头打造的是使用批处理文件,它包含以下开始。
我尝试下面的事情至今:
- 尝试
sc.exe
命令,但并没有工作。 - 然后,我将我的.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"
,但得到这个
答
要运行一个无头Eclipse RCP应用程序作为Windows服务我成功地使用Apache Commons' prunsrv.exe(download here)数年。
步骤一步指令运行Eclipse信息中心(这是一个无头RCP应用并包含在所有的Eclipse IDE包)作为Windows服务:
-
前提:
- 甲Java安装了JRE或JDK
- 安装了Eclipse IDE已安装, G。 eclipse-SDK-4.7-win32-x86_64.zip
- 下载commons-daemon-1.0.15-bin-windows.zip从http://www.apache.org/dist/commons/daemon/binaries/windows/
- 提取prunsrv。EXE从下载的ZIP压缩文件的根目录到Eclipse安装目录
-
在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"
双击
install_as_service.bat
- Press Windows + R,进入
services.msc
并单击OK- =>服务列表应该包括Eclipse的信息中心
- 启动服务Eclipse的信息中心
- 在Web浏览器打开http://localhost:8088/help/index.jsp
- => Eclipse帮助应在网页浏览器(类似https://help.eclipse.org)
要卸载服务,先停止服务,然后运行prunsrv.exe delete "Eclipse Infocenter"
@howgler你能显示提供一个工作的例子...? – techie
如果您删除或修改了_-application#com.example.rcp.product.application_,那么它应该适用于您的_sc.exe_:服务可以启动,但问题是如何关闭您的应用程序:是否可以发送命令(如示例中所示)还是要杀死进程? – howlger
糟糕,我以为你的应用程序是'sc.exe'。将批处理脚本“sc.exe”更改为“eclipsec.exe”或调用* .exe文件的方式(请参阅上面的编辑)。 – howlger