2016-11-05 49 views
0

是否有可能在bash中編譯並運行java文件而不保存編譯的文件? 我正在使用命令javac File.java && java File。它可以工作,但會創建一個File.class文件。在bash中編譯並啓動java文件而不保存已編譯的文件

我可以以某種方式管道編譯的文件到java命令嗎?我試過javac File.java | java但它不起作用。

+0

你能解釋一下這種方法的用例嗎? –

+0

@StefanFreitag感謝您的評論。我之所以想這樣做,是因爲我不想在文件系統中使用無用的文件,我認爲這會比每次刪除都更簡單。 – Alexander

+0

您可以在正在運行的JVM中編譯Java代碼,然後加載編譯後的類並運行它。請參閱:https://www.quora.com/How-do-I-compile-Java-program-B-from-inside-Java-program-A-without-calling-javac-via-Runtime-exec – Eric

回答

1

據我所知,這是不可能的,也沒有多大意義。

你看,你的JVM帶有許多兆字節的預編譯類;而且他們中的很多人會在運行你的小班時被加載。保存1 K或File.class在磁盤空間上消耗的內容毫無意義。

所以你應該退一步,重新考慮你認爲你可以通過這種方法解決什麼樣的問題。

1
javac File.java && java File ; rm File.class 
+0

this。雖然像上面一樣,我得問:「爲什麼?」 每次需要啓動shell進程時,你會編譯/ bin/bash嗎? – ivanivan