使用简单的C程序编译和运行Java程序

时间:2015-08-29 07:52:20

标签: java c++ c cmd

我有这个问题:

要编译和运行Java程序,我必须执行以下操作:

在cmd.exe中运行命令

path C:\Program Files\Java\jdk1.7.0_75\bin

然后我必须编译程序:

C:\Documents and Settings\Java\HelloWorld>javac HelloWorld.java

...并运行:

C:\Documents and Settings\Java\HelloWorld>java HelloWorld

为了不遵循这些步骤,我编写了简单的C程序:

#include <stdio.h>
#include <stdlib.h>

#define _JAVA
#define JAVAC

int main(int argc, char *argv[])
{
    char comand[261];
    if(argc < 2)
    {
        printf("Error: not enougth arguments. Example: %s <java program name>\n", argv[0]);
        return 0;
    }
    system("path \"C:\\Program Files\\Java\\jdk1.7.0_75\\bin\"");
#ifdef JAVA
    sprintf(comand, "java \"%s\"\0", argv[1]);
#elif defined JAVAC
    sprintf(comand, "javac \"%s\"\0", argv[1]);
#else
#error must defined JAVA or JAVAC
#endif
    system(comand);
    return 0;
}

但它不起作用:cmd没有看到&#34; java&#34;或&#34; javac&#34;。

我该如何解决?

3 个答案:

答案 0 :(得分:0)

我认为你必须使用控制面板设置路径,因为如果你使用命令提示符设置路径,这将在命令提示符关闭路径时临时设置路径也销毁,所以使用

永久设置它
  

控制面板\系统和安全\系统&gt;高级系统设置&gt; <环境变量>并且在系统变量中添加路径可能会对您有所帮助。

答案 1 :(得分:0)

不要使用C程序,只需使用几个批处理脚本。首先是设置路径变量 jpath.bat 的那个。无论何时安装新SDK,都需要更改。您无需更改任何环境变量。每次都设置它。对于不同的SDK,您可以使用不同的SDK。 Java并不像所有人希望的那样具有普遍性:有时存在版本依赖性,尤其是当它获取jar文件时。

@path "%programfiles%\java\jdk1.7.0_75\bin";%path%

接下来是构建 jbuild.bat

的脚本
@setlocal
@call jpath.bat
rem add -cp and any jar files before the %1
javac %1
@endlocal

接下来是运行代码 jrun.bat

的脚本
@setlocal
@call jpath.bat
rem add -cp and any jar files before %1
java %1
@endlocal

使用

jbuild HelloWorld.java
jrun HelloWorld

答案 2 :(得分:0)

对于java\jdk1.7.0_75\bin路径的永久解决方案,强烈建议您按照Abhijit Kumbhar的说法在控制面板中设置环境路径。

如果您仍然不知道该怎么做,对于临时解决方案,您应该在程序的同一文件夹中创建一个新的文本文件,并使用.bat扩展名对其进行编辑,然后按以下方式编辑内容:在每行中添加以下内容......

set path="C:\Program Files\Java\jdk1.7.0_75\bin"
javac programname.java
java programname
pause

您可以使用所需的程序名编辑.bat文件并运行它。这可以防止每次打开cmd并编译和运行代码的繁琐工作。基本上,每次运行时,.bat文件都会为您执行此操作。

编辑:如果您已在环境变量中设置了永久路径,那么您只需使用{{1中的最后3行(除了第一个)文件。这仍然可以节省您打开cmd窗口并反复输入繁琐命令的时间。