我想运行一个简单的java程序,使用VB脚本解析参数。
这是我的VBScript代码
Sub Button1_Click()
Set WshShell = CreateObject("WScript.Shell")
Dim jar
Dim location
Dim dictionary
Set dictionary = CreateObject("Scripting.Dictionary")
jar = "C:UsersDocumentsExP.jar"
location = "C:UsersDocumentsTestProject"
Set WshShellExec = WshShell.Exec("java -jar " & Chr(34) & jar & Chr(34) & location & Chr(34))
End Sub
这是我想要传递参数的java类
public static void main(String[] args) {
ReadTestScripts readTestScripts = new ReadTestScripts(args[3]);
//location ="C:\Users\Documents\TestProject" - want to pass this path to java programme
readTestScripts.showResult();
}
当我将位置作为VBScript参数传递时,我没有得到预期的输出
您正在连接要执行的命令,但在参数之间不留空格,因此,如果您调试了传递给Exec()
的命令,它将看起来像;
java -jar "C:UsersDocumentsExP.jar""C:UsersDocumentsTestProject"
修复方法是在jar
和location
之间添加一个凹入空间。
Sub Button1_Click()
Set WshShell = CreateObject("WScript.Shell")
Dim a
Dim location
Dim dictionary
Set dictionary = CreateObject("Scripting.Dictionary")
jar = "C:UsersDocumentsExP.jar"
location = "C:UsersDocumentsTestProject"
Set WshShellExec = WshShell.Exec("java -jar """ & jar & """ """ & location & """")
End Sub
这将产生命令
java -jar "C:UsersDocumentsExP.jar" "C:UsersDocumentsTestProject"
请注意,用正确的双引号转义方法替换Chr(34)
,即使它们加倍。
有用的链接
- 启动路径包含空格的程序