我有一位CS教授,他堅持在我們提交我們的評分代碼之前,在linux服務器上編譯我們的java類。當我帶他參加一個C語言課程時,他這樣做是有道理的,因爲我知道有時候C代碼會在Linux中通過Windows進行不同的編譯。通過windows在linux機器上編譯java的好處是什麼?
但是,我對JVM的理解是它與平臺無關。這是真的還是我錯過了在Linux上編譯的一些好處?
我有一位CS教授,他堅持在我們提交我們的評分代碼之前,在linux服務器上編譯我們的java類。當我帶他參加一個C語言課程時,他這樣做是有道理的,因爲我知道有時候C代碼會在Linux中通過Windows進行不同的編譯。通過windows在linux機器上編譯java的好處是什麼?
但是,我對JVM的理解是它與平臺無關。這是真的還是我錯過了在Linux上編譯的一些好處?
Java是一次寫入運行的。這可能是它創建的主要原因之一。 Java被編譯成由Java虛擬機解釋和執行的Byte代碼。此外,出於性能方面的考慮,這會使用即時編譯轉換爲本機代碼。
我能想到的唯一原因可能是某些操作系統特定的東西硬編碼在您的應用程序中?比如「C:\ some \ folder \ lives \ here \ on \ windows」,或者你的情況是「/ usr/local/somefile/here/i/want/to/access/on/linux」。再次不確定。
這就是我的想法。我將不得不問他,看看他爲什麼要這樣做。 –
如果他讓你硬編碼操作系統特定的東西。挑戰他!告訴他..聽着,有一個由Java提供的'Paths'軟件包,可以爲我們做這項工作...沒有,它確實存在。當他們意識到自己能想到快樂的想法時可以飛翔的時候,確保你擁有和彼得潘一樣的熱情。只是說... – Tr1gZer0
不,沒有好處。只是扮演角色的JVM,就是PI。 –
只有你獲得的好處是在Windows和Linux中默認的字符集是不同的,所以如果有人試圖注入一些僞裝成註釋的惡意內容,比如\ u000d這樣的Unicode轉義符。你大概可以弄明白。但是,然後Unicode處理再次發生在源代碼處理之前,所以我不知道它添加了多少價值 – TruckDriver
由於默認字符集,一些構建依賴於平臺。等 – TruckDriver