keenProgrammer keenProgrammer - 3 years ago 163
Java Question

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
. 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("").startsWith("Windows")) {
// includes: Windows 2000, Windows 95, Windows 98, Windows NT, Windows Vista, Windows XP
path = "C://Users//...";

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


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

Answer Source

It would be better if you were to use 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...

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download