简单的跨平台获取 Java 中知名的桌面路径?

     2023-02-25     160

关键词:

【中文标题】简单的跨平台获取 Java 中知名的桌面路径?【英文标题】:Simple, cross-platform to get well-known desktop paths in Java? 【发布时间】:2012-10-16 06:49:49 【问题描述】:

我正在寻找一种简单的跨平台方式,在 JVM 上获取用于存储应用程序设置和缓存数据的适当目录。例如,在 XDG 规范下的 Linux 上:

~/.config/appname 中配置 缓存在~/.cache/appname

Windows 的东西进入 C\Users\user\Application Data 或类似的(在 Win 7 上);我收集到 Mac 把东西放在~/Library/Application Settings 下。

是否有跨平台调用来获取这些路径位置?我一直没能找到一个,虽然我发现了几个问题。是否有一些库为最常见的桌面平台实现了正确的逻辑?

最坏的情况,我可以查找 user.home 并假装一切都是基于 XDG 的 Linux 环境。但如果很容易为用户的操作系统获取正确的目录,我愿意这样做。

【问题讨论】:

【参考方案1】:

我们基本上设置了一个提供此信息的实用程序类,主要基于user.homeos.name 系统属性。

我们有一系列方法可以让我们建立一个路径位置,比如......

SystemUtilities.getApplicationSettingsPath("Name of my awesome app");

【讨论】:

【参考方案2】:

FileSystemView 类是我所知道的唯一一个包含对此类通用目录的访问权限的类,并且是跨平台的。参考文档here

该类包含一些可能有用的方法,例如getHomeDirectory()getDefaultDirectory()JFileChooser 将此类用于 Swing 接口。我知道它并不直接指向配置和缓存目录,但它可能是朝着正确方向迈出的一步。

对于我自己的应用程序,我采用次优方法,尝试将所有配置和设置包含在应用程序本身中 - 即。在安装应用程序的目录下创建一个“config”目录。尽管它不是整个操作系统配置的中心位置,但至少它保持在 java 应用程序上下文中。

【讨论】:

在 C++ 跨平台中解析 url 的简单方法?

】在C++跨平台中解析url的简单方法?【英文标题】:EasywaytoparseaurlinC++crossplatform?【发布时间】:2011-02-0615:27:44【问题描述】:我需要解析一个URL以在我用C++编写的应用程序中获取协议、主机、路径和查询。该应用程序旨在跨平... 查看详情

java获取文件的路径问题

...常因为路径的问题找不到,此文用于记录如何定位文件的简单方法。本基于springboot做的测试,主要是构建工程方便,所用的方法都是JDK中的方法,主要测试有”/“和没有""的问题,以及getResourceAsStream(Stringstring)和getResourc... 查看详情

在java中使用gremlin获取两个节点之间的所有路径

...点之间的所有路径来解决一些问题。在gremlin控制台上的简单查询中,我可以使用此查询来做到这一点:(NameofthefirstNode).loo 查看详情

java开发环境安装

...变量,将jdk的安装路径放到系统变量中path变量中。2.Java跨平台原理每个平台有不同的Java虚拟机,不跨平台的Ja 查看详情

qt5.1.0怎么获取桌面路径

参考技术A对于经常喜欢将文件放置在电脑桌面的朋友来说,最佳的优化方案是将桌面路径更改为非系统盘,因为桌面文件默认是存放在系统盘,电脑开关机都会扫描到,文件过多会影响速度,而我们通过修改Win10桌面文件路径,... 查看详情

纯js操作获取桌面路径方法

     //active控件获取当前用户的桌面的路径的方法  varwsh=newActiveXObject("wscript.shell");listall(wsh.SpecialFolders("Desktop"));functionlistall(imagePath){    //active控件读取桌面指定名称图片的方法varfso=newActiveXObject("Scripting 查看详情

怎么找到自己的java安装路径

...解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分... 查看详情

c的图形界面开发库,可借助xml和css构建简单的跨平台桌面应用

参考技术ALCUI是一个用C编写的图形界面开发库,你可以用C、XML和CSS创建简单的桌面应用,包括传统的Win32桌面应用、Windows通用应用,目前主要支持Windows系统,后续版本将会完善对Linux系统的支持。如果你在熟悉C语言的基础上还... 查看详情

java怎么获取本地文件路径

...调用不行,这个函数本身不是静态的啊。参考技术AJava中获取用户本地路径的方法:用request对象来获取:request.getRequestURL();或者用:request.getRequestURI(); 参考技术Bimportjava.io.File;importjavax.swing.filechooser.FileSystemView;publicclassTestpublicsta... 查看详情

1libgdx简单介绍

Libgdx是一个跨平台和可视化的的开发框架。它当前支持Windows。Linux,MacOSX。Android,IOS和HTML5作为目标平台。Libgdx同意你一次编写代码不经改动部署到多个平台。你会能够从能够高速迭代的桌面环境中编码而获益,而不是将你的最... 查看详情

java入门知识,写一个最简单java程序(代码片段)

...M(JavaVirtualMachine):是java的虚拟机,用于保证java的跨平台的特性,java语言是跨平台,jvm不是跨平台的。JRE、JDK、JVM的作用编写代码过程中,需要使用JRE中java已经写好的代码;编译代码过程中,需要使用... 查看详情

linux获取当前路径

Linux查看当前路径命令:pwd,比较简单,如果有时在操作过程中忘记了当前路径,可以通过此命令来查看路径,执行方式为:pwd/home/samleepwd为运行的命令,/home/samlee为运行pwd命令后显示的信息,即显示用户当前所在的工作目录的... 查看详情

控制台中的电子错误““路径”参数必须是字符串类型”

...intheconsole【发布时间】:2021-01-2700:05:04【问题描述】:《跨平台桌面应用程序》一书中的电子应用程序代码,旨在向浏览器显示用户文件目录,就像在桌面资源管理器应用程序中一样。constos=require 查看详情

在 Python 中获取临时目录的跨平台方法

】在Python中获取临时目录的跨平台方法【英文标题】:Cross-platformwayofgettingtempdirectoryinPython【发布时间】:2010-10-2506:34:03【问题描述】:在Python2.6中是否有一种跨平台的方式来获取temp目录的路径?例如,在Linux下为/tmp,而在XP下... 查看详情

如何在 Qt 中以跨平台的方式获取设置存储路径?

】如何在Qt中以跨平台的方式获取设置存储路径?【英文标题】:Howtogetasettingsstoragepathinacross-platformwayinQt?【发布时间】:2015-09-1113:55:06【问题描述】:我的程序需要读取/写入一个文本(仅几行)文件及其设置到磁盘。在代码中... 查看详情

invalidpathexception异常问题(代码片段)

为了跨平台,java在获取路径的时候常常要照顾UNIX类型OS的情绪,会在路径的最前方放置一个斜线“/”,这个斜线在Windows中出现的话,常常就是这个样子:C:SoftwareassetsTemplate.xls再将它们导入到java.nio.file.Path类中处理时就是抛出ja... 查看详情

java示例代码_获取java中XML文件中节点的完整路径

java示例代码_获取java中XML文件中节点的完整路径 查看详情

如何在 C# 中为当前用户获取桌面路径?

】如何在C#中为当前用户获取桌面路径?【英文标题】:HowtogetapathtothedesktopforcurrentuserinC#?【发布时间】:2010-10-1215:48:52【问题描述】:我唯一能找到的是VB.NET-only类SpecialDirectories,它具有以下属性:My.Computer.FileSystem.SpecialDirectori... 查看详情