我的代码中出现以下异常,我不确定系统找不到哪个文件。是我正在执行的命令gfortran.exe
还是gfortran所依赖的动态库?我怎么知道,哪个档案是找不到的?
java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:376)
at java.lang.ProcessImpl.start(ProcessImpl.java:136)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1022)
Caused: java.io.IOException: Cannot run program "gfortran.exe" (in directory "C:\Users\Jason Zwolak\AppData\Local\Temp\pet2-biopack-Jason Zwolak"): CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
at com.insilicalabs.pet2.publish.mpf.BiopackCompiler.compile(BiopackCompiler.java:154)
[catch] at com.insilicalabs.pet2.publish.mpf.PublishToMPFProvider.publishImpl(PublishToMPFProvider.java:190)
at com.insilicalabs.pet2.publish.mpf.PublishToMPFProvider.access$000(PublishToMPFProvider.java:60)
at com.insilicalabs.pet2.publish.mpf.PublishToMPFProvider$1.run(PublishToMPFProvider.java:67)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1432)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2044)
更新
要澄清一下,如果gfortran.exe
是无法找到的文件,那么这样的错误总会如此吗?或者是否无法找到共享库?我怎么知道找不到哪个文件?
答案 0 :(得分:2)
让我们一步一步地完成这一过程。
Caused: java.io.IOException: Cannot run program "gfortran.exe" (in directory "C:\Users\Jason Zwolak\AppData\Local\Temp\pet2-biopack-Jason Zwolak"): CreateProcess error=2, The system cannot find the file specified
如果查看该行的末尾,则表明在列出的目录中找不到gfortran.exe
,或者“系统找不到指定的文件。”
现在,如果无法找到该文件,情况将永远如此。 所以找不到文件,而不是命令。
我们知道这不是一个依赖于gfortran.exe的库,否则会明确声明该错误是由堆栈中的依赖引起的。
当文件存在但无法访问时,可以抛出此异常。当文件权限不允许读取或写入等时会发生这种情况。
解决歧义问题,如果系统无法运行程序,并且找不到列出的文件,则认为它是无法找到的文件,而gfortran.exe就是该文件。为了确保程序本身因为无法找到的文件而无法运行(将明确说明。),请检查at java.lang.ProcessBuilder.start(ProcessBuilder.java:1022)