「一次編譯,處處運行」非自動實現。遵循12條原則,構建真正可移植的Java應用。
javac -Xlint或IDE全警告模式,捕獲平台相關代碼提示。@Deprecated與未文檔化方法。destroy()、關閉非守護線程。僅異常時用exit()。notepad vs Linuxvi)。System.getProperty()動態獲取:
file.separator:/ (Unix) vs \ (Windows)path.separator:: vs ;line.separator:\n vs \r\nInetAddress.getHostName()格式跨平台不一。用getAddress()獲取標準IP。user.home,臨時目錄用java.io.tmpdir。文件名用ASCII,避免與系統程序同名衝突。FlowLayout、BorderLayout、GridBagLayout自適應。SystemColor:inactiveCaption、menu等系統色Toolkit.getScreenSize()、getScreenResolution()、loadSystemColors()發布前逐項核對:無tools.jar依賴、無\\硬編碼、無notepad.exe字面量、無setBounds()絕對佈局、測試Windows/Linux/macOS三平台。