简体   繁体   中英

Java Cross-Platform OS detection to declare file path location

I currently comprise the following code which fails to compile. The else if statement reports that ' ;' expected ;' expected . I don't understand why I can't use a else if for this scenario?

public class FileConfiguration {

    private String checkOs() {
        String path = "";        
        if (System.getProperty("os.name").startsWith("Windows")) {
            // includes: Windows 2000,  Windows 95, Windows 98, Windows NT, Windows Vista, Windows XP
            path = "C://Users//...";            

        }
        elseif (System.getProperty("os.name").startsWith("Mac")) {
            path = "///Users//...";
        }
        return path;        

    }

    // declare paths for file source and destination 
    String destinationPath = path;
    String sourcePath = path;

It would be better if you were to use user.name and user.home . You can also get the separator using file.separator . Check this out . Those properties will really help you do this more cleanly without checking the OS.

Then there's also the matter of you needing to change to using else if , not elseif ...

elseif does not exist in java. You must use else if as:

if (a) {
// code
} else if (b) {
// code
}

There is no elseif keyword in java. You should say else if (pay attention on the space)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM