我有一个外部程序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重定向。但是查看该工具的主页将无法正常工作:它需要标准输入(通常由重定向提供)上的stdin数据。
您需要通过外壳(最好使用流程构建器)启动此命令:
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代码中执行以下操作: 但是在此行之后,整个用户
问题内容: 当前,我有一个Java Standalone Swing应用程序。 现在,当用户单击Swing应用程序中的按钮时,我想启动另一个Java应用程序(说:Calculator.jar) 我可以知道什么是便携式方法吗?这样它就可以在多个OS中工作吗? 问题答案: 使用或只是将其放在类路径中并调用其。
问题内容: 我一直在尝试将jar转换为exe。该程序-jar-使用蓝牙库“ Bluecove”,它是某个目录中的另一个jar。该程序还通常使用Java Swing 和东西。从Netbeans或Eclipse中运行时,该程序可以完美运行。现在是我部署它的时候了,因此我需要将其转换为exe。但是我一直无法获得最终的可执行文件来链接“ Bluecove”。我尝试了JSmooth和Launch4j,但是使
问题内容: 可能是一个简单的问题,但我找不到有关此的任何信息。 我曾经以这种方式运行selenium2.x。我启动服务器: 然后运行测试。我使用Dart,所以我这样做 但是现在我正在尝试使用selenium3。我已经下载了它,并用新的jar替换了旧的终端调用,但看来我可以做到。Selenium告诉我它不知道这样的参数“ -Dwebdriver.chrome.driver”。在帮助中,我看不到用于指
,而项目本身可以完美地运行eclipse IDE。 我尝试了相同问题的解决方案,但错误仍然存在。这是一个maven项目,pom.xml具有所有依赖项。 有人能帮我解决这个问题,或者建议一种通过eclipse IDE执行java-callgraph的方法来达到同样的目的吗?
有人成功地从linux终端下载了wetransfer链接吗? thnx mart