Java 如何动态获取文件夹路径?
我已编译文件的文件夹中有一个业务文件夹(e:\Business)。我想在主程序中使用此文件夹。我的主程序位于主文件夹(e:\ProjectFile\main)中 我想动态获取业务文件夹的路径。我使用此状态但不起作用:Java 如何动态获取文件夹路径?,java,Java,我已编译文件的文件夹中有一个业务文件夹(e:\Business)。我想在主程序中使用此文件夹。我的主程序位于主文件夹(e:\ProjectFile\main)中 我想动态获取业务文件夹的路径。我使用此状态但不起作用: String loadedClassPath = System.getProperty("user.dir")+System.getProperty("file.separator")+"Business"; File operatorFile = new
String loadedClassPath = System.getProperty("user.dir")+System.getProperty("file.separator")+"Business";
File operatorFile = new File(loadedClassPath);
URL operatorFilePath = operatorFile.toURL();
URL[] operatorFilePaths = new URL[]{operatorFilePath};
ClassLoader operatorsClassLoader = new URLClassLoader(operatorFilePaths);
Class[] operatorClass = new Class[]{ operatorsClassLoader.loadClass("Plus"), operatorsClassLoader.loadClass("Minus"),operatorsClassLoader.loadClass("Multiply") , operatorsClassLoader.loadClass("Divide") };
我认为这部分不正确:
String loadedClassPath = System.getProperty("user.dir")+System.getProperty("file.separator")+"Business";
有人能帮我吗?因为“e:\Business”与
- Java代码的位置
- 您的主目录(user.dir)
- 任何其他众所周知的Windows或Java目录
main
注意:构造路径/文件名时,请使用
新文件(父文件、子文件)
,或者更好地使用较新的路径。get(第一,更多,…)
“较新”指的是Java 7,意思是自2011年7月28日起,因此不再是那么新了。基本上,您不能,除非您打算直接使用绝对路径,否则“业务”文件夹与应用程序文件夹之间几乎没有什么关联。更好的解决方案是将业务文件夹放在一个众所周知的位置,如Windows o上的
{user.home}\AppData\Local\{Your AppName}
,在Maca上的{user.home}/Library/ApplicationSupport/{Your AppName}
,另一种选择可能是定义一个指向文件夹位置的环境变量并使用System.getenv(…)
要在运行时检索或将其作为参数传递给应用程序,教师说主程序和业务应位于同一驱动器中。如果我更改了驱动器,我的程序应该可以运行仅供参考:我很确定你昨天问过这个问题,一般不鼓励“bump”posts将“bump”文件夹放置在与代码执行相关的位置,然后你可以使用user.dir
并将路径的相对部分添加到其中