通过命令提示符执行Jar文件类,但在通过QTP的shell脚本对象运行时使用noClassDefFound
我编写了一个类来从websphere MQ获取数据并将其保存为MQTools.Jar runnable。
我尝试创建一个shell脚本对象,并在线程" main"中使用Run命令Exception。 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
我使用相同的命令,复制并粘贴到命令窗口,它运行非常顺利,没有错误。任何人都可以建议
答案 0 :(得分:1)
得到了......
这里的问题是即使我在QTP中添加了类路径运行时,QTP也不会在重新启动QTP之前获取类路径。对于新机器,会出现此问题,对于旧机器(即之前已运行此脚本的机器),类路径已经具有变量中所需的值,并且不会遇到此问题。这个问题类似于我之前发布的但尚未找到解决方案的问题。 Refresh system variable using vbscript/QTP
问题陈述是'如何在不重新启动QTP的情况下反映QTP中系统env变量的变化'
解决方案:可能与一些极客有关,但世界还不知道。