是否可以在不使用任何shell的情况下编译和运行java?

时间:2015-07-31 21:19:19

标签: java bash shell

这个问题刚刚出现在我脑海中。 要编译java,我们需要使用$ JAVA_HOME / bin / javac文件并将需要编译的java文件传递给它。 我想知道是否可以在不使用bash / shell的情况下执行javac文件。 或者使用任何其他编程语言直接执行javac文件?

2 个答案:

答案 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以生成可部署的申请包。