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

Posted

技术标签:

【中文标题】使用简单的 C 程序编译和运行 Java 程序【英文标题】:Compile and run Java programs using simple C program 【发布时间】:2015-08-29 07:52:19 【问题描述】:

我有这个问题:

要编译和运行 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 看不到“java”或“javac”。

我该如何解决?

【问题讨论】:

您是否将javajavac 添加到您的environment variables 中? 我是用命令路径做的,不是吗? 您可以使用control panel 进行操作。谷歌一下就行了。 我假设第二个system() 看不到path 变量的修改。请参阅 ***.com/questions/245600/… 并尝试在单个 system() 调用中运行这两个命令。 每个系统命令都可能是独立的。我会使用 shell 或批处理脚本来执行此操作。 【参考方案1】:

我认为您必须使用控制面板设置路径,因为如果您使用命令提示符设置路径,这将在命令提示符关闭时临时设置路径,路径也会破坏,因此使用永久设置它

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

【讨论】:

【参考方案2】:

不要使用 C 程序,只需使用一些批处理脚本。第一个是设置路径变量jpath.bat。每当您安装新的 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

【讨论】:

【参考方案3】:

对于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 文件会在您每次运行时为您完成。

编辑:如果您已经在环境变量中设置了永久路径,那么您只需使用.bat 中的最后 3 行(除了第一行)文件。这仍然可以节省您打开 cmd 窗口并一遍又一遍地输入乏味命令的时间。

【讨论】:

以上是关于使用简单的 C 程序编译和运行 Java 程序的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Sublime Text 2 编译和运行一个简单的 C 程序?

如何在UltraEdit中编译和运行Java程序

编写和运行Java程序的步骤是啥?每一步的结果是啥?在JDK中,Java语言的编译命令是啥?急需答案啊。

使用命令行编译和运行 cJava和python程序

运行c程序的过程和简单的c程序结构

Java编译程序和运行过程详解