当前位置: 首页 > 面试题库 >

在Linux中从Java访问“〜”(用户主目录)

袁博
2023-03-14
问题内容

我需要在〜/ .config / myapp.cfg中创建一个配置文件,所以我要使用File

File f;
f = new File("~/.config/gfgd.gfgdf");
if(!f.exists()){
    f.createNewFile();
}

问题是,它告诉我,该目录不存在,类似这样。

java.io.IOException: Not such file or directory
    at java.io.UnixFileSystem.createFileExclusively(Native Method)

我尝试将路径更改为/ home /
user之类的东西,它起作用了。所以我设法得出一个结论,即java不知道〜/的含义以及文件夹名前的punct(。)的含义,因为/home/user/.config也无法正常工作。

我该怎么办?


问题答案:

这种~表示法是一件空壳的事情。阅读有关外壳扩展的内容。

Java不理解这种表示法。要获得主目录,请使用key
获取系统属性user.home

String home = System.getProperty("user.home");
File f = new File(home + "/.config/gfgd.gfgdf");

(作为奖励,它也可以在Windows计算机上运行;-)



 类似资料:
  • 问题内容: 我需要授予SFTP访问服务器上我的Webroot中的目录的权限。我已将ben_files设置为用户,并将其主目录设置为 /var/www/vhosts/mydomain.com/files 如果他使用普通的旧FTP连接就可以了-他只限于该目录,但是要启用SFTP,我必须将他添加到bin / bash shell中,这突然打开了我的整个服务器… 有没有一种方法可以给他SFTP访问权限,但

  • 本文向大家介绍Linux系统使用用户密钥ssh主机访问,包括了Linux系统使用用户密钥ssh主机访问的使用技巧和注意事项,需要的朋友参考一下 使用用户密钥ssh主机,在安全性上要大大高于直接输入root 的密码,具体实现,请看下面的教程。 ps:使用root权限进行操作 1)先创建一个账户 执行后,/home 下生成一个名为lee的目录。目录的权限为700,所属组为wheel,所属用户为lee

  • 问题内容: 在运行Linux的基于ARM的系统上,我有一个将内存映射到物理地址的设备。从所有地址都是虚拟的用户空间程序中,如何从该地址读取内容? 问题答案: 您可以使用系统调用将设备文件映射到用户进程内存。通常,设备文件是物理内存到文件系统的映射。否则,您必须编写一个内核模块来创建此类文件或提供一种将所需内存映射到用户进程的方法。 另一种方法是将/ dev / mem的部分重新映射到用户内存。 编

  • 我正在尝试使用Gulp从主目录复制所选文件,但以下操作无法完成此操作: 什么是正确的设置为使其工作?文档对此非常简洁。

  • 问题内容: 我需要一种在Linux上运行的C ++程序中获取用户主目录的方法。如果相同的代码可以在Unix上运行,那就太好了。我不想使用HOME环境值。 AFAIK,根主目录是/ root。如果我的程序是由root用户运行的,可以在该目录中创建一些文件/文件夹吗? 问题答案: 您需要获取当前用户的用户ID,然后获取该用户的密码条目(包括主目录): 注意:如果您在线程化应用程序中需要此功能,则可以改

  • 问题内容: 如何在Grails中找到任意用户的主目录?在Linux上,通常是/ home / user。但是,在某些操作系统上,例如OpenSolaris,路径为/ export / home / user。 问题答案: 对于类似UNIX的系统,您可能希望使用shell 执行“ ”(因此可使用运行)。