File Separator

You should also learn to use characters in different operating systems to represent a directory path in a file hierarchy. The file separator is always a problem when dealing with multiple platforms.

Consider the following paths, all valid for their respective operating systems:

  • Windows: C:\myfolder\mydocument.txt

  • Unix: /usr/myuser/mydocument.txt

  • Classic Mac OS: Hard Drive:My Folder:My Document

Each path describes a typical location for a user document, located in a nested folder. Each OS uses a different character to represent a directory: \, /, or :. Make sure your application does not make assumptions about which of these characters to use, but rather relies on the value returned by the system specific to that platform:

System.getProperty("file.separator");
System.getProperty("path.separator");

The file.separator is the system property containing the character (or characters) that delimits file and directory names. This character is usually / or \. The path.separator is the character used to separate path entries on a single line (such as multiple entries in the system’s classpath).

Generally, either you will have a base directory and need to construct paths relative to this directory, or you will work with user-specified files and use standard file dialogs.

Class Loader Issues

When writing Java applications, it’s common to write code that contains a reference to a platform-specific class and then dynamically load that class. Consider the following pseudo-code ...

Get Mac OS X for Java Geeks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.