我以前使用以下代码启动了这个程序:
dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
strCmd = "cmd.exe /c start /D C:\Jts C:\Windows\system32\javaw.exe -cp jts.jar;total.2012.jar -Dsun.java2d.noddraw=true -Dswing.boldMetal=false -Dsun.locale.formatasdefault=true -Xmx768M -XX:MaxPermSize=128M jclient/LoginFrame C:\Jts"
WshShell.Run(strCmd)
然而,现在,由于精彩的java
更新,我的java.exe
文件位于此处:
C:\Program Files (x86)\Java\jre1.8.0_31\bin\javaw.exe
我无法替换上面的strCmd
变量,因此我的VBScript
没有错误输出。我知道它与Program Files (x86)
中的间距有关,我试图实现这个答案:How to use spaces in CMD?
但它似乎没有起作用。请帮忙解释一下这些空间的用途。
编辑:
我只是想通了。天啊,我讨厌空间。显然这很有用,我想知道这是否是最好的解决方案:
strCmd = "cmd.exe /c start /D C:\Jts C:\""Program Files (x86)""\Java\jre1.8.0_31\bin\javaw.exe -cp jts.jar;total.2012.jar -Dsun.java2d.noddraw=true -Dswing.boldMetal=false -Dsun.locale.formatasdefault=true -Xmx768M -XX:MaxPermSize=128M jclient/LoginFrame C:\Jts"
答案 0 :(得分:1)
Start命令的引号中的第一组参数被假定为windows标题。
你的命令不起作用,但这可能看起来不错,因为它错了,Windows无法判断它有多么错误并将其视为部分路径......
JavaW将列在应用程序路径下。您将文件夹指定为窗口标题,保留程序名称(但Windows知道如何仅按名称查找GUI程序)。
dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd.exe /c start """" /D C:\Jts ""C:\Windows\system32\javaw.exe"" -cp jts.jar;total.2012.jar -Dsun.java2d.noddraw=true -Dswing.boldMetal=false -Dsun.locale.formatasdefault=true -Xmx768M -XX:MaxPermSize=128M jclient/LoginFrame C:\Jts"
修复了不必要的混淆和无意义的变量生成。
从“运行”中删除了括号(您没有测试返回值)。
为Windows标题添加一组空白引号("""")
引用的JavaW路径(System32不需要它)。记住,如果报价 用于任何地方开始第一组必须是windowtitle。