我在使用 Java 代码执行二进制可执行文件时遇到一些问题

发布于 2024-11-04 22:52:04 字数 562 浏览 0 评论 0原文

我在使用 Java 代码执行二进制可执行文件时遇到一些问题。

我的可执行文件使用以下命令在终端(Linux 操作系统)上完美运行

./ab0818 < ab0818.challenge

其中“ab0818”是可执行文件,“ab0818.challenge”是输入文件。

在终端中运行此命令后,我将得到 0 退出代码

我的代码如下。

System.out.println("Running the batch script");

Process p = Runtime.getRuntime().exec("./ab0818 < ab0818.challenge");
p.waitFor();
System.out.println("is.read() = "+p.exitValue());   

当我运行我的代码时,它永远不会退出 wait(waitFor()) 进程,并且我的程序永远不会终止。

我的问题是有没有其他方法可以使用 java 代码执行命令,或者我的代码是否需要进行任何修改。

提前致谢, -维拉杰

I am getting some problem while executing binary executable file using Java code.

My Executable file is running perfectly on Terminal(Linux os) using following command

./ab0818 < ab0818.challenge

where "ab0818" is executable file and "ab0818.challenge" is input file.

I will get 0 exit code after running this command in terminal

My Code is Bellow.

System.out.println("Running the batch script");

Process p = Runtime.getRuntime().exec("./ab0818 < ab0818.challenge");
p.waitFor();
System.out.println("is.read() = "+p.exitValue());   

when I am run my code it will never come out of wait(waitFor()) process and my program never terminates.

My question is there any alternative way to execute command using java code or is there any modification needed in my code.

Thanks in Advance,
-Viraj

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挥剑断情 2024-11-11 22:52:04

Java 不知道 Linux shell 的重定向运算符“<”。

您可以尝试:

...exec("bash -c './ab0818 < ab0818.challenge'")

您可能还想查看 http: //download.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html

Java doesn't know about the Linux shell's redirection operator "<".

You could try:

...exec("bash -c './ab0818 < ab0818.challenge'")

You might also want to look at http://download.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文