Uploaded image for project: 'Commons Lang'
  1. Commons Lang
  2. LANG-1075

Replace System.getProperty("file|path.separator") with File.separator|pathSeparator

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • None
    • 3.5
    • None
    • None

    Description

      The file separator character is available from both File.separator and System.getProperty("file.separator").

      The former is guaranteed to be a string of length 1, but the latter can be defined as a longer string on the Java command line. Thus the two can be different, but still allow the JVM to start up.
      I found the following worked:

      java -Dfile.separator=/xyz

      for Unix or the equivalent \xyz on Windows.

      [Using a different first character does not work - the JVM usually throws an
      exception as it cannot find some required files if the sep. is incorrect.]

      It looks like only the first character of the property is used by the JVM.
      However, this is not done by the application code I have seen, which means that there could be a discrepancy between the two methods.

      File.separator has the additional benefit that it is not subject to a privilege
      check.

      The same reasoning applies to "path.separator" => File.pathSeparator

      Commons code should always use the File constants.

      Attachments

        Activity

          People

            chonton Charles Honton
            sebb Sebb
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: