这个问题刚刚出现在我脑海中。 要编译java,我们需要使用$ JAVA_HOME / bin / javac文件并将需要编译的java文件传递给它。 我想知道是否可以在不使用bash / shell的情况下执行javac文件。 或者使用任何其他编程语言直接执行javac文件?
答案 0 :(得分:3)
是的,这是可能的。
#include <unistd.h>
int main(void)
{
execl( "/path/javac","javac", "/path/to/program.java", NULL );
return 0;
}
该C程序将执行编译器并在不使用shell的情况下编译program.java。只需在不使用shell的情况下运行它,并且运行没有shell的编译器。 它不是一个非常有用的程序,它总是编译相同的单个文件。但是可以修改它以读取包含要编译的文件列表的文件。这实际上是IDE的功能。这是在没有shell的情况下运行javac的另一种方式。
至于运行编译的java程序,同样的原则适用。创建一个运行java解释器的程序。
答案 1 :(得分:-2)
在某种程度上,没有使用javac作为shell命令执行它,因为它本质上是一个命令行程序。这意味着它可以从任何可以执行本机shell命令的编程语言执行。
大多数人在通过从shell手动执行javac的工作原理后做的是配置他们的IDE在开发时使用正确的参数执行javac,并配置maven或ant等构建技术来执行javac以生成可部署的申请包。