PE(.exe)周围的Java包装器

PE(.exe)周围的Java包装器,java,c++,wrapper,Java,C++,Wrapper,有没有办法制作一个Java程序(在Windows中)作为PE的包装器 (.exe),将所有stdin输入传递给程序,并将PE写入的所有内容写入stdout 我需要这个,因为程序的接口只允许java类,但是我想它运行一些C++代码。 提前谢谢 编辑:可移植性非常重要。这只需要在Windows中工作,在其他任何地方都不需要。是的,通过java.lang.Runtime.ecec()和java.lang.Process,您可以将所有3个流(in/out/err)都访问到您正在执行的*.exe。看看:

有没有办法制作一个Java程序(在Windows中)作为PE的包装器 (.exe),将所有stdin输入传递给程序,并将PE写入的所有内容写入stdout

我需要这个,因为程序的接口只允许java类,但是我想它运行一些C++代码。 提前谢谢


编辑:可移植性非常重要。这只需要在Windows中工作,在其他任何地方都不需要。

是的,通过java.lang.Runtime.ecec()和java.lang.Process,您可以将所有3个流(in/out/err)都访问到您正在执行的*.exe。

看看:

ProcessBuilder pb=newprocessbuilder(“myCommand”、“myArg1”、“myArg2”);
Map env=pb.environment();
环境看跌期权(“VAR1”、“myValue”);
环境移除(“其他变量”);
环境put(“VAR2”,环境get(“VAR1”)+“后缀”);
pb.目录(“myDir”);
进程p=pb.start();

.

其他人提到了标准Java机制(及其应用程序)。但是,可靠地重新路由stdout/stdin/errout需要()。如果你不需要在java应用程序中处理这个I/O,考虑使用一个本地调用(例如C的函数),通过或(),< /P>酷。我会试试,然后再打给你(或者勾选这个:)
 ProcessBuilder pb = new ProcessBuilder("myCommand", "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();