我正在从网络共享运行我的应用程序。例如:“\server\startProgramm.bat” 我的 startProgramm.bat 中的代码:
java -jar %~dp0\app.jar
我需要打开一些配置文件。如果我尝试使用以下方式打开它们,它将在本地工作:
new File("").getAbsolutePath() + "\\" + filename
但不在我的网络共享中。
配置文件位于我的 jar 和 bat 文件所在目录的子目录中。
我正在从网络共享运行我的应用程序。例如:“\server\startProgramm.bat” 我的 startProgramm.bat 中的代码:
java -jar %~dp0\app.jar
我需要打开一些配置文件。如果我尝试使用以下方式打开它们,它将在本地工作:
new File("").getAbsolutePath() + "\\" + filename
但不在我的网络共享中。
配置文件位于我的 jar 和 bat 文件所在目录的子目录中。
new File("\\\\servername\\sharedDirectoryOnServer\\fileOnServer");
“好吧,这行得通,但是有像 CurrentWorkDir 这样的东西吗?”
当前工作目录(默认情况下)是您的程序运行所在的目录。您无法在 java 中更改它(请参阅此处:
Changing the current working directory in Java?
),最佳做法是仅连接服务器路径和文件-姓名; 但我认为(不确定)也可以从服务器启动您的程序(java \\server\\path\\myprog
该目录中有一个 myprog.class )并使工作目录默认为该路径。