[英]Is it possible to run Java program from command line without compiling?
我有一組指令來創建一個 Java 應用程序,該應用程序在從 CMD 行運行應用程序時采用多個參數。
指令指出:
因此,使用上面的示例集,假設程序的 main() 方法在名為 JavaClassName 的類中,輸出應為:
$ java JavaClassName 4 7 file.csv
program output here
我的問題是:
這不是跳過編譯過程嗎?
他們是否會假設將 Java 類加載到以前從未運行過此應用程序的計算機上(或僅包含運行所需的.java
文件的目錄)? 運行 cmd
$ java JavaClassName 4 7 file.csv
會輸出什么?
旁注:目前,運行該 CMD 輸出
Error: Could not find or load main class JavaClassName
已經通過多個 SO 問題和在線教程試圖讓它運行,但我還沒有讓它工作。
你問:
這不是跳過編譯過程嗎?
絕對沒錯。 諸如java JavaClassName 4 7 file.csv
類的命令行假定當前目錄中(或在CLASSPATH環境變量中找到的某些其他目錄或Zip / Jar文件中)存在已編譯的類文件“ JavaClassName.class”。 是的,要生成該“ JavaClassName.class”類文件,必須首先使用Java編譯器。
從 Java 10 開始,可以運行適合單個文件的 Java 程序,而無需先手動運行編譯器。
它將在執行前即時編譯。 很好,對腳本很有用。
例如編寫 HelloWorld.java 文件
public class HelloWorld{
public static void main(String[] args) {
System.out.println("Hello World");
}
}
我們可以運行它
java HelloWorld.java
我們還可以在單個文件中添加更多類。
從 Java 11 開始,我們也可以使用shebang文件
.java
擴展名的文件chmod +x HelloWorld
寫入HelloWorld文件
#!/path/to/java --source 11
public class HelloWorld{
public static void main(String[] args) {
System.out.println("Hello World");
}
}
我們可以運行它
./HelloWorld
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.