簡體   English   中英

是否可以在不使用任何shell的情況下編譯和運行Java?

[英]Is it possible to compile and run java without using any shell?

這個問題突然浮現在我的腦海。 要編譯Java,我們需要使用$ JAVA_HOME / bin / javac文件並將需要編譯的Java文件傳遞給它。 我想知道是否可以在不使用bash / shell的情況下執行javac文件。 還是使用任何其他編程語言直接執行javac文件?

對的,這是可能的。

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

該C程序將在不使用外殼的情況下執行編譯器並編譯program.java。 只需在不使用外殼的情況下運行它,就可以在不使用外殼的情況下運行編譯器。 它不是一個非常有用的程序,它總是編譯相同的單個文件。 但是可以修改它以讀取文件並列出要編譯的文件。 IDE實際上是做什么的。 這是在沒有外殼的情況下運行javac的另一種方式。

至於運行已編譯的Java程序,則應用相同的原理。 創建一個運行Java解釋器的程序。

如果沒有在某種程度上將javac作為shell命令執行,則無法使用javac,因為從本質上來說,它是一個命令行程序。 這意味着它可以從任何可以執行本機Shell命令的編程語言中執行。

在大多數人通過從外殼程序手動執行Javac來學習javac的工作原理后,他們將IDE配置為在開發時使用正確的參數執行javac,並配置諸如maven或ant的構建技術來執行javac來生成可部署的應用程序包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM