【问题标题】:Configure path for win and linux为win和linux配置路径
【发布时间】:2010-09-27 11:26:04
【问题描述】:

适用于 windows 和 linux 环境的独立应用程序

当我使用 windows 环境时,文件系统将类似于 c:\file\abc\xyz\sample.txt 在linux环境下,文件系统为/home/qa/file/abc/xyz/sample.txt

abc 和 xyz 是取决于用户单击的文件夹名称。 (abc 是国家代码文件夹) & (xyz 是语言文件夹)

要构建路径,我使用诸如

之类的属性

base_path : /home/test/file/ 或 c:\test\file\ 文件名:sample.txt

在程序中路径的构造是:

字符串路径 = base_path+country_code+"/"+language_name+"/"+file_name(Linux 为"/")
字符串路径 = base_path+country_code+"\"+language_name+"\"+file_name (windows 为 "\")

Linux 示例:

/home/test/file/spain/es/sample.txt

Windows 示例:

c:\test\file\Italy\it\sample.txt

country_code 和 language_name 会因每次用户点击而有所不同。

每次我用不同的环境测试应用程序时,我都会将文件分隔符更改为“/”或“\”(windows 和 linux)。我如何在不更改文件分隔符的情况下执行代码。

(如果我错过了什么,告诉我我会更新相同的) 谢谢你。

【问题讨论】:

    标签: java


    【解决方案1】:

    您可以从 java.io.File.separatorChar (public static final char)
    中获取分隔符 或包装为 String java.io.File.separator (public static final String) - “系统相关的默认名称分隔符,为方便起见表示为字符串”。 见:http://docs.oracle.com/javase/6/docs/api/java/io/File.html#separator

    【讨论】:

      【解决方案2】:

      Windows 接受 / 作为有效的文件分隔符,因此无需来回更改它,只需在任何地方使用正斜杠即可。

      请注意,Windows 甚至接受混合的分隔符字符串作为有效路径,例如,“C:\test\file\Italy/it/sample.txt”也可以。

      【讨论】:

        【解决方案3】:

        Java 具有可以查询文件分隔符的系统属性。如果您使用System.getProperty("file.separator"),它将根据您运行的平台返回“\”或“/”。或者使用File.separator,这也是系统相关的默认文件分隔符。

        【讨论】:

          【解决方案4】:

          尝试System.getProperies 中的内容,如下所示:

          public class So3803335 {
              public static void main(String[] arguments) {
                  System.out.println("java home dir: "+System.getProperty("java.home"));
                  System.out.println("user dir: "+System.getProperty("user.dir"));
                  System.out.println("user home: "+System.getProperty("user.home"));
                  System.out.println("file separator: "+System.getProperty("file.separator"));
              }
          }
          

          在我的windoze盒子上,上面写着:

          java home dir: C:\Program Files\Java\jdk1.6.0_20\jre
          user dir: D:\home\ray\dev\stsworkspace\rtec
          user home: C:\Documents and Settings\ray
          file separator: \
          

          在我的 linux 机器上它说:

          java home dir: /usr/lib/jvm/java-6-sun-1.6.0.17/jre
          user dir: /home/ray
          user home: /home/ray
          file separator: /
          

          【讨论】:

            猜你喜欢
            • 2019-02-12
            • 1970-01-01
            • 2018-08-03
            • 1970-01-01
            • 2014-04-27
            • 2022-10-05
            • 2021-12-07
            • 2012-06-26
            • 2011-08-30
            相关资源
            最近更新 更多