Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java Cross-Platform OS detection to declare file path location

Tags:

java

I currently comprise the following code which fails to compile. The else if statement reports that ';' 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;
like image 815
keenProgrammer Avatar asked Jan 18 '23 11:01

keenProgrammer


1 Answers

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...

like image 192
Mike Thomsen Avatar answered Feb 16 '23 08:02

Mike Thomsen