我有一个外部程序Otter,该程序将一些文件名作为参数并创建了一个输出文件,也将其指定为参数。因此,例如,如果我的输入是“
proof.in”,并且我希望将输出放置在“ proof.out”文件中,则可以在终端中运行以下命令:
otter <proof.in >proof.out
“ proof.in”文件必须与水獭可执行文件位于同一文件中。
问题是我需要Java提供此功能,因此在我的Java代码中执行以下操作:
java.lang.Runtime.getRuntime().exec("otter <proof.in >proof.out")
但是在此行之后,整个用户界面被冻结,并且什么也没有发生,并且没有生成输出文件。
谁能告诉我我错了哪里?
在此先感谢Tamash
这是正常的:您正在尝试启动通常由Shell发出的命令。
在这里,<proof.in
和>proof.out
作为otter
可执行文件的文字参数,而不是shell重定向。但是查看该工具的主页将无法正常工作:它需要标准输入,通常由重定向提供。
您需要通过外壳(最好使用流程构建器)启动此命令:
final ProcessBuilder pb = new ProcessBuilder("/bin/sh", "-c", "otter <proof.in >proof.out");
final Process p = pb.start();
等等等
当然,您还应该确保该程序从正确的目录运行-幸运的是,ProcessBuilder
还允许您执行此操作。
问题内容: 我有一个外部程序Otter,该程序将一些文件名作为参数并创建了一个输出文件,也将其指定为参数。因此,例如,如果我的输入是“ proof.in”,并且我希望将输出放置在“ proof.out”文件中,则可以在终端中运行以下命令: “ proof.in”文件必须与水獭可执行文件位于同一文件中。 问题是我需要Java提供此功能,因此在我的Java代码中执行以下操作: 但是在此行之后,整个用户
问题内容: 我试图制作一个调用外部程序的应用程序,我必须传递两个参数。它没有任何错误。用c ++编写的program.exe可以拍照并修改txt文件的内容。Java程序可以运行,但是什么也没做 这是我的示例代码 问题答案: 从这里可耻地借来的
问题内容: 我正在尝试从Java代码执行程序。这是我的代码: 我的操作系统是Mac OS X 10.6。 如果我从方法中删除,则所有文件名都将打印在控制台上。但是我需要将其打印到文件中。 另外,如果我将命令更改为: 并在Windows上运行,它也可以运行并在文件中完美打印结果。 我已经阅读了其他文章,以期从Java执行另一个应用程序,但似乎都与我的问题无关。 我会很感激我能得到的任何帮助。 谢谢,
,而项目本身可以完美地运行eclipse IDE。 我尝试了相同问题的解决方案,但错误仍然存在。这是一个maven项目,pom.xml具有所有依赖项。 有人能帮我解决这个问题,或者建议一种通过eclipse IDE执行java-callgraph的方法来达到同样的目的吗?
问题内容: 我一直在尝试将jar转换为exe。该程序-jar-使用蓝牙库“ Bluecove”,它是某个目录中的另一个jar。该程序还通常使用Java Swing 和东西。从Netbeans或Eclipse中运行时,该程序可以完美运行。现在是我部署它的时候了,因此我需要将其转换为exe。但是我一直无法获得最终的可执行文件来链接“ Bluecove”。我尝试了JSmooth和Launch4j,但是使
我试图制作一个调用外部程序的应用程序,我必须传递两个参数。它没有给出任何错误。 ,用C编写,拍摄照片并修改