g ++不适用于Java

二十烷

我当时正在研究用于编译程序的Java代码。

因此,用户可以选择要编译的文件,然后该程序将通过自己的g ++运行。

在网上,特别是在StackOverFlow上,我决定使用以下代码:

//Set a FileChoose called fc, got the file path (filePath) and the directory path (dirPath), then:
ProcessBuilder process=null;
try {
    process = new ProcessBuilder("g++", filePath, " -o "+dirPath+"/a.out").start();
} catch (IOException ex) {
    System.err.println("Error compiling file");
    Logger.getLogger(Nuovo.class.getName()).log(Level.SEVERE, null, ex);
    System.exit(0);
}

关键是它不会返回任何错误,并且当我检查文件是否已编译时,什么也没有。

任何想法?

非常感谢你!

彼得·劳瑞

我建议您阅读程序的输出以查看程序产生了什么错误。

我的猜测是它会说类似的话。

File not found:  -o dir/a.out

请注意,您已指定了" -o "+dirPath+"/a.out"是单个参数。这就像写作

g++ $filePath ' -o dir/a.out'

也许你的意图是

new ProcessBuilder("g++", filePath, "-o", dirPath+"/a.out").start();

Java为什么不像shell一样解析您的参数?因为它将参数传递给系统调用,exec所以它实际上不会执行C ++不会执行的任何操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

-m32选项不适用于gcc,但适用于g ++

Java方法适用于1.5,但不适用于1.6

Java:JScrollPane不适用于GridBagLayout

Java方法适用于Windows,但不适用于Macintosh吗?

HttpPost适用于Java项目,不适用于Android

iOS UIBackgroundMode远程通知不适用于4G

SDL_QUIT事件适用于g ++,但不适用于gcc

<g>元素不适用于Firefox上的<svg>

查询适用于oracle 12c,但不适用于11g

SFINAE:检测成员变量的存在不适用于g ++

向量迭代器循环可用于g ++,但不适用于VisualC ++,为什么?

不适用于参数()

透视变换仅适用于svg标签,而不适用于g或图像

通过HTTP进行Volley Request仅适用于Wifi(WLAN),不适用于3G / GPRS(UMTS)

“ sort -g”不适用于科学计数形式的数据

适用于Linux g ++ C ++的system(“ pause”)

Logitech GHUB宏不适用于G613键盘

无线网络不适用于Broadcom Corporation BCM43224 802.11a / b / g / n [14e4:4353](修订版01)

编译时已知数组大小:使用 g++ 传递编译,但不适用于 icpc

instanceof 不适用于“或”

Mongodb 投影不适用于 Java

IndexRoute 不适用于“/”

Java hashCode 不适用于 HashMap?

虚拟继承不适用于特定的 g++ 版本

KeyPairGeneration 不适用于 RSA 的 Java

ng g 类在创建类时不适用于 angular 9

为什么 g++ 静态链接在 Windows 中不适用于 sfml?

IMAPFolder getSortedMessages 不适用于 Liferay/Tomcat 但适用于常规 Java 应用程序

Oracle Query 适用于 19c 但不适用于 11g