【问题标题】:Read File on Networkshare读取网络共享上的文件
【发布时间】:2012-02-13 08:12:06
【问题描述】:

我正在从网络共享运行我的应用程序。例如:“\server\startProgramm.bat” 我的 startProgramm.bat 中的代码:

java -jar %~dp0\app.jar

我需要打开一些配置文件。如果我尝试使用以下方式打开它们,它将在本地工作:

new File("").getAbsolutePath() + "\\" + filename

但不在我的网络共享上。

配置文件位于我的 jar 和 bat 文件所在目录的子目录中。

【问题讨论】:

  • new File("\\\\servername\\sharedDirectoryOnServer\\fileOnServer") 怎么样?
  • 好的,这行得通,但是有类似 CurrentWorkDir 的东西吗?
  • 我猜你得到了 FileNotFoundException?也许问题与该目录名称有关?尝试打印您的程序从该网络共享运行时尝试读取的路径。
  • 当前工作目录是 System.getProperty("user.dir")。
  • 好的,我将我的评论复制到一个答案中以供将来参考,并添加了我发现的关于工作目录的内容

标签: java file networking share smb


【解决方案1】:
new File("\\\\servername\\sharedDirectoryOnServer\\fileOnServer");

“好的,这行得通,但是有像 CurrentWorkDir 这样的东西吗?”

当前工作目录(默认情况下)是您的程序运行所在的目录。您可以在 java 中更改它(参见此处: Changing the current working directory in Java? ), 最佳做法是仅连接服务器路径和文件名;但我认为(不确定)也可以从服务器启动您的程序(java \\server\\path\\myprog,该目录中有一个 myprog.class)并使工作目录默认为该路径。

【讨论】:

    猜你喜欢
    • 2013-01-23
    • 1970-01-01
    • 2017-03-16
    • 2019-02-10
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多