Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行c++;从Java问题 我需要从java编译并运行C++程序。我正在使用_Java_C++_Command Line - Fatal编程技术网

运行c++;从Java问题 我需要从java编译并运行C++程序。我正在使用

运行c++;从Java问题 我需要从java编译并运行C++程序。我正在使用,java,c++,command-line,Java,C++,Command Line,进程a=Runtime.getRuntime().exec(“g++-g function.cpp-o function”); 进程b=Runtime.getRuntime().exec(“./function”) 问题是,我从C++程序中得到的输出是不正确的,但是如果我自己在命令行中编译并运行它,它就可以正常工作。问题是Java,我不知道为什么 非常感谢 Al,是否在运行流程B之前等待流程A完成?是否在运行流程B之前等待流程A完成?“输出…不正确”无助于任何人诊断您的问题。您肯定应该给出您期望

进程a=Runtime.getRuntime().exec(“g++-g function.cpp-o function”); 进程b=Runtime.getRuntime().exec(“./function”)

问题是,我从C++程序中得到的输出是不正确的,但是如果我自己在命令行中编译并运行它,它就可以正常工作。问题是Java,我不知道为什么

非常感谢


Al,

是否在运行流程B之前等待流程A完成?

是否在运行流程B之前等待流程A完成?

“输出…不正确”无助于任何人诊断您的问题。您肯定应该给出您期望的输出,以及您从Java看到的输出。假设您的程序很小,您也应该发布它的源代码(因为这毕竟是关于编译过程的)

顺便问一下,当您导航到Java程序的工作方向,找到它生成的
函数
可执行文件并从命令行调用它时,会发生什么?现在输出正确吗?这个问题的答案将让您知道问题是在编译步骤还是在执行步骤

如果是执行,我会冒险猜测环境(envvars、PATH等),但如果没有更多信息,很难判断

此外,与所有涉及
过程的问题一样,请看一看。看起来你正在至少其中一个(不消耗输出的普通),这可能导致程序在普通C++代码上工作,但在较大的代码库上死锁。

您也根本没有检查编译步骤的输出(返回值或stdout/stderr流),因此您不知道编译是否成功,如果不成功,您从编译器获得了什么(有用的)错误消息。

“输出…不正确”无助于任何人诊断您的问题。您肯定应该给出您期望的输出,以及您从Java看到的输出。假设您的程序很小,您也应该发布它的源代码(因为这毕竟是关于编译过程的)

顺便问一下,当您导航到Java程序的工作方向,找到它生成的
函数
可执行文件并从命令行调用它时,会发生什么?现在输出正确吗?这个问题的答案将让您知道问题是在编译步骤还是在执行步骤

如果是执行,我会冒险猜测环境(envvars、PATH等),但如果没有更多信息,很难判断

此外,与所有涉及
过程的问题一样,请看一看。看起来你正在至少其中一个(不消耗输出的普通),这可能导致程序在普通C++代码上工作,但在较大的代码库上死锁。


您也根本没有检查编译步骤的输出(返回值或stdout/stderr流),因此您不知道编译是否成功,如果不成功,您从编译器中得到了什么(有用的)错误消息。

我在这里看到了一个明确且可能存在的问题。确切的问题是Runtime.exec()不会等待进程完成。因此,您需要添加

a.waitFor();
在给b打电话之前


可能的问题是,根据您调用此应用程序的方式,当前工作目录可能不在您认为的位置。因此function.cpp可能不存在

我在这里看到了一个确定的和一个可能的问题。确切的问题是Runtime.exec()不会等待进程完成。因此,您需要添加

a.waitFor();
在给b打电话之前


可能的问题是,根据您调用此应用程序的方式,当前工作目录可能不在您认为的位置。因此function.cpp可能不存在

“输出不正确”表示什么,确切地说,“输出不正确”表示什么,确切地说?如果答案解决了您的问题,请单击左侧的复选框“接受”最好的答案。如果答案解决了您的问题,请单击左侧的复选框“接受”最好的答案。