我有一个jar文件,其中有一个外部程序。 这意味着在jar的实现中,它将外部程序放入其资源文件夹中,并且有一个函数使用Process类调用该程序。 我正在使用jar并尝试调用此函数来封装程序。但得到以下错误:
Exception in thread "main" java.io.IOException: Cannot run program "file:/C:/Data/Work/workspace/keytool/lib/baseutil-1.0.0-SNAPSHOT.jar!/decode.exe": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
非常感谢您的帮助。
编辑:
调用jar中文件的方法:
public String retrive(String dmidecode) throws Exception {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < options.length; i++) {
Process process = new ProcessBuilder(dmidecode, "-s", options[i]).start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
sb.append(options[i]);
sb.append("=");
while ((line = br.readLine()) != null) {
sb.append(line);
}
sb.append("\n");
}
return sb.toString();
}