2016-12-16 23 views
0

我有以下批处理文件: -执行批处理文件提供了意想不到的结果

gcc temp.c -o temp.exe 
pause 

此批处理文件编译一个.C文件。这个批处理脚本在双击执行时运行良好,但是当我为此使用java时,它给了我一个错误。以下是代码

Process p = Runtime.getRuntime().exec("cmd /c start CPrun.bat"); 
p.waitFor(); 

CRun.bat是批处理文件的名称。

以下是对CMD的错误

'gcc' is not recognized as an internal or external command, 
operable program or batch file. 

注意,GCC是我的C编译器这是在我的电脑

+0

是gcc的路径? – pringi

+0

@pringi是啊,这就是为什么直接执行它可以正常工作 –

+0

尝试给CPrun.bat上的gcc的完整路径。我不确定Windows在cmds之间的环境共享方式如何运行 – pringi

回答

1

指定的完整路径应该做的伎俩的路径定义。但不要忘记用双引号括起来"。批量建议使用双引号括住所有路径,因为在Windows路径中很可能包含空格。没有双引号,空格将作为分隔符处理,在不同的部分制动你的路径(就像它们是不同的参数/可执行文件一样)。

关于环境变量:您只能访问系统传递给JVM的环境变量。要查看这些变量,您可以使用System.getenv()它将字符串返回到字符串映射,并将环境变量名称映射到它们的值上。我制作了a little demo,其中打印了所有可用的环境变量。

相关问题