您可能正在寻找JNI - Java Native Interface。 JNI肯定会满足你老师对难度的要求。 JNI允许Java代码在其他语言中调用代码,并获得回应,就像调用Java方法一样。我知道的JNI最大的问题是本地(C,C++等)代码中的崩溃也会导致Java程序崩溃。 JNI会将您当前的应用程序的外部脚本内部代码制作成内容代码,而且可能比您需要的更困难。
对于更简单的解决方案,您可能需要查看Java中的ProcessBuilder类。例如:
ProcessBuilder pb = new ProcessBuilder("myshellScript.sh", "myArg1", "myArg2");
Map<String, String> env = pb.environment();
env.put("VAR1", "myValue");
env.remove("OTHERVAR");
env.put("VAR2", env.get("VAR1") + "suffix");
pb.directory("myDir");
Process p = pb.start();
InputStream is = p.getInputStream();
// use process p's input stream is to provide input to your process here
OutputStream os = p.getOutputStream();
// use process p's output stream to get the results here
嗯,我已经看了这些,它似乎是唯一的ProcessBuilder运行.EXE文件。 JNI看起来很有前景,但它似乎只与C和C++兼容。我可以使用SWIG(http://www.swig.org/)从Java到C/C++到Ruby/Python。但是,这不是一个非常简化的解决方案。希望它不会来,所以我会继续寻找 – Curlystraw 2011-01-10 14:38:14