我正在尝试通过VB项目使用Apache Ant运行Python应用程序word2html
。以下代码调用了可执行文件。
//in loop
If (Not ExecuteProgram("ant", "word2html", True)) Then
Throw New System.Exception("couldn't run word2html")
End If
//executeprogram function
Public Function ExecuteProgram(ByVal ExeLoc As String, ByVal ExeArgs As String, ByVal bSynch As Boolean) As Boolean
'The exefile location is passed in along with a boolean value of whether to
'execute the file syncronously or asynchronously
Try
Dim MyInstance As New System.Diagnostics.Process
Dim si As New ProcessStartInfo(ExeLoc, ExeArgs)
MyInstance.StartInfo = si
MyInstance.Start()
If bSynch Then
'run synch
MyInstance.WaitForExit()
End If
Return True
Catch ex As Exception
MsgBox(ex.ToString)
Return False
End Try
End Function
代码在几周前成功运行,但现在失败了以下error message:
System.ComponentModel.Win32Exception(0x80004005):系统找不到指定的文件
在System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
在ConsoleApplication1.Hello.ExecuteProgram(String ExeLoc,String ExeArgs,Boolean bSynch)
在 C:\ Users \用户shwang \桌面\ SVN \干线\ DATA \ data_loading \脚本\ data_sheet _scripts \ Pipeline \ ProcessDatasheetPipeline \ Module1.vb:第349行
当我从ant word2html
窗口运行cmd
时,它会成功运行。
我怀疑这是我的工作环境发生了变化我检查了ANT_HOME
和JAVA_HOME
变量是否正确并包含在PATH
环境变量中。我应该检查哪些其他依赖项?我目前正在使用Microsoft VB 2010 Express作为我的IDE。
答案 0 :(得分:0)
ant
实际上是批处理脚本,而不是可执行文件。这就是为什么错误信息是"系统无法找到指定的文件"。 Windows找不到名为ant
的可执行文件。
您可以使用cmd.exe
及其/c
选项来运行批处理脚本:
If (Not ExecuteProgram("cmd.exe", "/c ant word2html", True)) Then