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

时间:2017-06-20 09:05:27

标签: java cmd qtp

通过命令提示符执行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

我使用相同的命令,复制并粘贴到命令窗口,它运行非常顺利,没有错误。任何人都可以建议

1 个答案:

答案 0 :(得分:1)

得到了......

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

问题陈述是'如何在不重新启动QTP的情况下反映QTP中系统env变量的变化'

解决方案:可能与一些极客有关,但世界还不知道。