抱歉,如果這是題外話。我是一個(gè) java 初學(xué)者,知道 java 應(yīng)該是跨平臺(tái)一致的。但我想知道我的 jar 文件或 *class 文件在 Ubuntu 上執(zhí)行的事實(shí)是否保證它可以在 MacOS 上正常運(yùn)行?我基本上執(zhí)行以下操作來(lái)創(chuàng)建 *class 和 *jar。兩個(gè)Java類,MAIN.java取決于SIDE.java兩者的java文件包括package classes;頭部(javac創(chuàng)建一個(gè)文件夾名為classes期權(quán)和看跌期權(quán)MAIN.class,并SIDE.class在那里):javac -d . SIDE.java MAIN.java
jar cvfe MAIN.jar classes/MAIN classes/*.class我嘗試同時(shí)運(yùn)行:java classes.MAIN -read number.logs和java -jar MAIN.jar -read number.logs并且它們都在 Ubuntu 上運(yùn)行良好。這是否足夠好并且可以在 MacOS 上運(yùn)行?(我沒(méi)有 MacOS,在這種情況下是否有模擬器可以用來(lái)檢查事情?)
2 回答

ibeautiful
TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
Java 是跨平臺(tái)的,這是有原因的。您的 Java 代碼被翻譯成 Java 字節(jié)碼(您的.class
文件),而JVM
(Java 虛擬機(jī))是一臺(tái)運(yùn)行您的字節(jié)碼的機(jī)器。
此 JVM 隨您的操作系統(tǒng)上的 Java 安裝一起提供。因此,如果您可以安裝 JRE(包括 JVM),您就可以運(yùn)行您的代碼。
有一個(gè)例外,Java 語(yǔ)言有時(shí)使用操作系統(tǒng)標(biāo)準(zhǔn)來(lái)表示圖形(awt 類),因此您的程序(如果您使用這些類)可能看起來(lái)不同,但工作方式相同。
例如,操作系統(tǒng)如何保存文件,由 JVM 處理,作為高級(jí)開(kāi)發(fā)人員,您不必?fù)?dān)心,除非您遇到操作系統(tǒng)端的限制。根據(jù)具體情況,這些限制由異常處理。如果你在你的代碼中處理異常,那么如果它在另一個(gè)操作系統(tǒng)上工作,幾乎沒(méi)有什么在一個(gè)操作系統(tǒng)上不起作用。
添加回答
舉報(bào)
0/150
提交
取消