【问题标题】:Path variables on Linux and WindowsLinux 和 Windows 上的路径变量
【发布时间】:2012-07-02 03:16:12
【问题描述】:

我在一个 Java 项目中有几个路径变量,它们在 Linux 上运行良好。这些变量存储在.properties 文件中,并在 Spring 应用程序上下文中使用。这是一个有效的名称变量示例:just.an.example=/home/username/settings/。很简单,对吧?我正在尝试在 Windows 机器上运行这个应用程序。我尝试了以下方法:just.an.example=d:/settings/just.an.example=d\:/settings/just.an.example=d\:\\settings\\just.an.example=file:///d:/settings/ 等等,但都没有奏效。

我得到 NullPointerException,这是尝试使用从文件夹中获取的文件的原因(这让我认为无法看到该文件夹​​)。更具体地说,这些变量用作File 类构造函数的参数。访问文件夹的权限是默认的,我刚刚创建了它们。

此示例变量的工作选项是什么?

更新:它终于和just.an.example=D:/settings/一起工作了,不知何故我在重新安装它后不得不重新导入Maven项目,不仅更新依赖关系,而且D:/settings/在这种情况下工作正常。

【问题讨论】:

  • 试试 D:\\Settings\\ - 在这里查看特殊字符和转义部分 - commons.apache.org/configuration/userguide/…
  • 基本上 d:/settings/ 应该可以正常工作,通常重新启动计算机会有所帮助。
  • @ftom2 好吧,不,这可能不应该工作。又和重启有什么关系?
  • @verisimilitude 这很有希望,但没有奏效。
  • 我所说的“应该工作”的意思是,这是在 Windows 上定义环境变量的方式。在Java程序使用的windows上定义环境变量时,有时会在定义变量后重新启动计算机,以便Java程序识别它(定义/更新后仅重新启动一次)

标签: java windows linux path


【解决方案1】:

如果/home/username/settings/ 等价于D:/settings/,则最后一个是正确的。正斜杠对此效果很好,我已经多次做过这种事情。如果您可以通过 Windows 资源管理器访问D:/settings/,那么 Java 应该也可以。尝试在 Windows 资源管理器中粘贴 D:/settings/ 看看会发生什么。

【讨论】:

  • 是的,我知道应该这样做,但它不起作用。我会在调试下尝试找出原因。
猜你喜欢
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多