Jar 文件 class 通过命令提示符执行,但当 运行 通过 QTP 的 shell 脚本对象时 noClassDefFound

Jar file class getting executed through command prompt but noClassDefFound when run through shell script object of QTP

Jar 文件 class 通过命令提示符执行,但当 运行 通过 QTP 的 shell 脚本对象执行时 noClassDefFound

我写了一个 class 从 websphere MQ 获取数据并将其保存为 MQTools.Jar 运行nable。

我尝试创建一个 shell 脚本对象并在线程 "main" java.lang.NoClassDefFoundError 中使用 运行 命令异常:bec/MQ/Tools/MQClass

Set objShell = CreateObject("Wscript.Shell")

If instr(1,objShell.Environment.item("classpath"), strJavaFilePath, 1) > 0 Then 'javafilepath is path to the runnable Jar
Else
    objShell.Environment.item("classpath") = objShell.Environment.item("classpath") & ";"&strJavaFilePath
End If
objShell.Run("cmd /c set classpath="& objShell.Environment.item("classpath"))

intReturn = objShell.Run ("cmd /c java bec.MQ.Tools.MQClass" & " "& strCommandLineArgs, 1, true) 'This line throws noclassdeffound error

我用同样的命令,复制粘贴到命令window,运行非常顺利,没有错误。任何人都可以请建议

知道了...

这里的问题是,即使我在 QTP 中添加了类路径 运行time,QTP 也不会获取类路径,直到您重新启动 QTP。对于新机器,会出现这个问题,对于旧机器,即这个脚本之前已经 运行 的机器,类路径在变量中已经有所需的值,不会遇到这个问题。这个问题与我之前发布但尚未找到解决方案的问题类似。 Refresh system variable using vbscript/QTP

问题陈述是'How to reflect changes in system env variables in QTP without having to restart QTP'

解决方案:可能和一些极客在一起,但还不为世人所知。