这是一个操作系统检测器:
public class OSDetector{ private static boolean isWindows = false; private static boolean isLinux = false; private static boolean isMac = false; static { String os = System.getProperty("os.name").toLowerCase(); isWindows = os.contains("win"); isLinux = os.contains("nux") || os.contains("nix"); isMac = os.contains("mac"); } public static boolean isWindows() { return isWindows; } public static boolean isLinux() { return isLinux; } public static boolean isMac() { return isMac; };}然后,您可以打开如下文件:
public static boolean open(File file){ try { if (OSDetector.isWindows()) { Runtime.getRuntime().exec(new String[] {"rundll32", "url.dll,FileProtocolHandler", file.getAbsolutePath()}); return true; } else if (OSDetector.isLinux() || OSDetector.isMac()) { Runtime.getRuntime().exec(new String[]{"/usr/bin/open", file.getAbsolutePath()}); return true; } else { // Unknown OS, try with desktop if (Desktop.isDesktopSupported()) { Desktop.getDesktop().open(file); return true; } else { return false; } } } catch (Exception e) { e.printStackTrace(System.err); return false; }}回答您的编辑:
尝试使用
file.getAbsoluteFile()甚至
file.getCanonicalFile()。



