使用 Visual Basic 脚本和批处理的 Java 作为 Windows 服务
Posted
技术标签:
【中文标题】使用 Visual Basic 脚本和批处理的 Java 作为 Windows 服务【英文标题】:Java as Windows service using visual basic script and batch 【发布时间】:2020-09-30 23:50:00 【问题描述】:我正在尝试使用位于启动文件夹中的 Visual Basic 脚本来初始化 Java 服务。此 vbs 脚本调用一个批处理文件,该文件与我要初始化的 jar 位于同一文件夹中。批处理调用带有属性参数的 jar 并且它工作正常但是当我从 vbs 调用批处理文件时会跳转一个错误:
我猜这是一个安全问题,但我不知道如何解决它。
vbs 的文件夹是:C:\Users\user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ 内容vbs:CreateObject("Wscript.Shell").Run """C:\Program Files\Res\run_res.bat""", 0, True
批处理和jar的文件夹是:C:\Program Files\Res\
内容批处理:
javaw -jar dpc.jar
【问题讨论】:
我真的不明白为什么要使用由 Windows 脚本宿主解释的 Visual Basic 脚本运行由 Windows 命令处理器解释的批处理文件来运行可执行文件javaw.exe
。为什么不在%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
中为属性Target 创建一个已在Properties 中配置的快捷方式(扩展名为.lnk 的文件)(右键单击创建的快捷方式以查看该上下文菜单项) "C:\Full Path to\javaw.exe" -jar dpc.jar
和属性 Start in 包含文件 dpc.jar
? 的目录的完整路径
Windows 将直接在 %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
中使用这样的快捷方式运行 Java,而无需首先运行 Windows Script Host 的 wscript.exe
(Windows GUI 版本)或 cscript.exe
(Windows 控制台版本),具体取决于当前的内容配置为默认运行cmd.exe
运行javaw.exe
。看起来您之所以选择此解决方案,是因为不知道任何可执行文件都可以通过 Windows 桌面上的快捷方式直接启动,或者在 Windows 开始菜单中的某个位置或您要创建和使用 Windows 快捷方式文件的任何位置。跨度>
我没有想过这个解决方案,但它肯定比我的好。我会按照你的方式实施。谢谢。
【参考方案1】:
由于我是从另一个文件夹运行 vbs,我需要在批处理中指定 jar 的整个绝对路径。
【讨论】:
以上是关于使用 Visual Basic 脚本和批处理的 Java 作为 Windows 服务的主要内容,如果未能解决你的问题,请参考以下文章
powershell 各种CMD Batch,Powershell和Visual Basic脚本文件