有没有可能编译和运行java而不使用任何shell ?



这个问题突然出现在我的脑海里。要编译java,我们需要使用$JAVA_HOME/bin/javac文件,并将需要编译的java文件传递给它。我想知道是否有可能执行javac文件而不使用bash/shell。或者使用其他编程语言直接执行javac文件?

是可能的。

#include <unistd.h>
int main(void)
{
  execl( "/path/javac","javac", "/path/to/program.java", NULL );
  return 0;
}

该C程序将执行编译器并编译program.java而不使用shell。在不使用shell的情况下运行它,你就不用shell运行编译器了。它不是一个很有用的程序,它总是编译同一个文件。但是可以将其修改为读取带有要编译的文件列表的文件。这就是ide所做的。这是在没有shell的情况下运行javac的另一种方式。

对于运行编译后的java程序,同样的原则也适用。创建一个运行java解释器的程序

在某种程度上,不将javac作为shell命令执行是不可能使用的,因为从本质上讲,它是一个命令行程序。这意味着它可以从任何可以执行本机shell命令的编程语言中执行。

通过在shell中手动执行javac了解了它的工作原理后,大多数人所做的是配置他们的IDE,以便在开发时使用正确的参数执行javac,并配置构建技术(如maven或ant)来执行javac以生成可部署的应用程序包。

相关内容

最新更新