使用 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脚本文件

[Visual Basic]几种常考的排序算法代码模板

Windows-10 电池指示器 Visual Basic 脚本

Visual Basic从入门到精通pdf

Visual Basic实例精通pdf

office 2010 提示“不信任到visual basic project“问题处理