通过JavaService 将java jar包注册成Windows 服务

一、 下载Javaservice ,把压缩文件解压,放到本地磁盘。
下载地址:
JavaService 64位  http://download.forge.ow2.org/javaservice/JavaService_2_0_10-amd64.zip
JavaService 32位  http://download.forge.ow2.org/javaservice/JavaService-2.0.10.zip
二、 准备jar包,查看jar 包Main函数所在的class


三、 将jar包、解压后的Javaservice执行程序、jdk免安装包放在同一个文件夹下,并在该文件下新建err.log 和 out.log 文件。
四、 注册完成后可能会遇到“The LoadLibrary function failed for the following reason 找不到指定的模块的解决”的问题,为避免该问题,在此先进行处理。
方法1:拷贝%JAVA_HOME%/bin/msvcr100.dll 文件到C:\Windows\System32,
如果是64位系统还要拷贝到C:\Windows\SysWOW64。
方法2:拷贝%JAVA_HOME%/bin/msvcr100.dll 文件到到java程序打包成的jar文件同一个目录下
采用第二种方法,将java-1.8.0_172\jre\bin\msvcr100.dll拷贝到java 程序jar包所在的目录下,这个目录结构如下:


此时start.bat 为空文件
app 目录下存放的文件


五、 编写bat脚本(start.bat)
@echo off

rem Get the current path
set C_PATH=%CD%

rem Get the installation path
set /p “I_PATH=Please enter the installation path:”

rem Check whether the installation path exists.
rem If the path already exists ,exit.
rem if no exists,creation installation path.
if exist %I_PATH% goto I_PATH_EXIT
if not exist %I_PATH% goto I_PATH_ONT_EXIT

:I_PATH_EXIT
echo %I_PATH% Already exist, please replace
set /p “I_PATH=Please enter the installation path:”
if exist %I_PATH% goto I_PATH_EXIT
if not exist %I_PATH% goto I_PATH_ONT_EXIT

:I_PATH_ONT_EXIT
mkdir %I_PATH%\app

rem echo Copy the file to the installation directory
rem xcopy directory ,copy file
xcopy %C_PATH%\app %I_PATH%\app /s

@ timeout 3
rem Register as a service
%I_PATH%\app\JavaService.exe -install Hello-test “%I_PATH%\app\java-1.8.0_172\jre\bin\server\jvm.dll” -Xms256m -Xmx1024m -jar -Djava.class.path=“%I_PATH%\app\java-1.8.0_172\lib\tools.jar;%I_PATH%\app\helloworld.jar” -start “org.springframework.boot.loader.JarLauncher” -out “%I_PATH%\app\out.log” -err “%I_PATH%\app\err.log” -current “%C_PATH%” -auto
@ timeout 5
net start Hello-test

rem Generate configuration file
echo 系统安装路径:%I_PATH%\app > %C_PATH%\confing.txt
echo 系统启动命令:net start Hello-test >> %C_PATH%\confing.txt
echo 系统关闭命令:net stop Hello-test >> %C_PATH%\confing.txt
echo 可以通过服务启动或关闭系统(已经配置开机自启动 )>> %C_PATH%\confing.txt
echo 系统服务卸载命令:sc delete Hello-test >> %C_PATH%\confing.txt
pause
注:-start “org.springframework.boot.loader.JarLauncher” –start 后面的class 为第二步中查到的class名称
六、 在Windows 10操作系统上进行测试(双击start.bat文件)
 

看到上面的页面,说明服务注册成功,并已经启动,按任意键退出即可。

七、 查看管理说明文档


confing.txt 在成功启动服务后自动生成


八、 查看安装路径文件


其中out.log 文件中记录服务启动日志
九、 参考文档
 https://blog.csdn.net/cxj1990year/article/details/41862831

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以通过以下步骤在Windows Server上启动一个jar包作为服务: 1. 下载安装Java运行时环境(JRE)并确保环境变量已正确设置。 2. 下载安装Apache Commons Daemon并确保环境变量已正确设置。 3. 创建一个新目录,将您的jar文件和所有相关文件放在其中。 4. 在该目录中创建一个新的文本文件,将其命名为“service.bat”并输入以下命令: ``` @echo off set SERVICE_NAME=MyServiceName set PR_INSTALL=%CD% set PR_CLASSPATH=. for /r "%PR_INSTALL%" %%i in (*.jar) do call :AddToClasspath "%%i" goto Start :AddToClasspath set PR_CLASSPATH=%PR_CLASSPATH%;%1 goto :eof :Start "%PR_INSTALL%\bin\prunsrv.exe" //IS//%SERVICE_NAME% ^ --DisplayName="My Service Display Name" ^ --Install="%PR_INSTALL%\bin\prunsrv.exe" ^ --Jvm="%JAVA_HOME%\jre\bin\server\jvm.dll" ^ --StartMode=jvm ^ --StopMode=jvm ^ --StartClass=com.example.MainClass ^ --StartMethod=start ^ --StopClass=com.example.MainClass ^ --StopMethod=stop ^ --Classpath="%PR_CLASSPATH%" ^ --LogPath="%PR_INSTALL%\logs" ^ --StdOutput="%PR_INSTALL%\logs\stdout.log" ^ --StdError="%PR_INSTALL%\logs\stderr.log" ^ --JvmMx=1024M echo Service installed goto End :Failed echo Failed installing service goto End :Delete "%PR_INSTALL%\bin\prunsrv.exe" //DS//%SERVICE_NAME% echo Service uninstalled goto End :End ``` 注意将其中的“MyServiceName”替换为您的服务名,“My Service Display Name”替换为您的服务显示名,“com.example.MainClass”替换为您的主类名。 5. 保存并关闭“service.bat”文件。 6. 以管理员身份运行命令提示符。 7. 切换到您的jar文件所在的目录。 8. 运行以下命令来安装服务: ``` service.bat install ``` 9. 运行以下命令来启动服务: ``` service.bat start ``` 现在,您的jar文件将作为服务Windows Server上运行。如果需要停止服务,请运行以下命令: ``` service.bat stop ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值