Java获取缓系统缓存路径遇到的问题
System.getProperty(“java.io.tmpdir”)踩坑
public static void main(String[] args) {
System.out.println(System.getProperty("java.io.tmpdir"));
}
在windows环境下的输出:
C:\Users\45869\AppData\Local\Temp\
然而在linux环境下输出:
------------log----------------
获取系统JAVA数据缓存目录:/tmp
------------log----------------
对于需要使用字符串来拼接路径时需要注意要中间增加File.separator
或者直接使用Paths和File来生成正确的路径:
public static void main(String[] args) {
String tmpdir = System.getProperty("java.io.tmpdir");
Path path1 = Paths.get(tmpdir, "A", "B");
Path path2 = Paths.get("C:\\Users\\45869\\AppData\\Local\\Temp", "A", "B");
System.out.println(path1.toAbsolutePath()); //C:\Users\45869\AppData\Local\Temp\A\B
System.out.println(path2.toAbsolutePath()); //C:\Users\45869\AppData\Local\Temp\A\B
File file1 = new File(tmpdir, "A");
File file2 = new File("C:\\Users\\45869\\AppData\\Local\\Temp", "A");
System.out.println(file1.getAbsolutePath()); //C:\Users\45869\AppData\Local\Temp\A
System.out.println(file2.getAbsolutePath()); //C:\Users\45869\AppData\Local\Temp\A
}
System.getProperty(key)说明
Key
Description of Associated Value
java.version
Java Runtime Environment version
java.vendor
Java Runtime Environment vendor
java.vendor.url
Java vendor URL
java.home
Java installation directory
java.vm.specification.version
Java Virtual Machine specification version
java.vm.specification.vendor
Java Virtual Machine specification vendor
java.vm.specification.name
Java Virtual Machine specification name
java.vm.version
Java Virtual Machine implementation version
java.vm.vendor
Java Virtual Machine implementation vendor
java.vm.name
Java Virtual Machine implementation name
java.specification.version
Java Runtime Environment specification version
java.specification.vendor
Java Runtime Environment specification vendor
java.specification.name
Java Runtime Environment specification name
java.class.version
Java class format version number
java.class.path
Java class path
java.library.path
List of paths to search when loading libraries
java.io.tmpdir
Default temp file path
java.compiler
Name of JIT compiler to use
java.ext.dirs
Path of extension directory or directories Deprecated. This property, and the mechanism which implements it, may be removed in a future release.
os.name
Operating system name
os.arch
Operating system architecture
os.version
Operating system version
file.separator
File separator ("/" on UNIX)
path.separator
Path separator (":" on UNIX)
line.separator
Line separator ("\n" on UNIX)
user.name
User's account name
user.home
User's home directory
user.dir
User's current working directory