假设我想在项目中的某个位置创建一个新文件夹,所以我想获取运行代码的当前工作路径或项目的根路径。
我不想硬编码路径。我使用了getAbsolute()
或getCanonicalFile()
或System.property("user.dir")
,但它无法正常使用。
答案 0 :(得分:4)
您可以将当前工作目录设为
File cwd = new File("./");
如果你需要将它变为绝对路径,那么
cwd.getAbsolutePath();
您可以使用
创建新目录File newDir = new File(cwd, "newDirectory");
newDir.mkdir();
但我的代码在其他地方:/ home / root /...../project/class.java
当前工作目录(通常)是从中启动Java的目录。这与jar文件的位置完全无关,而这反过来与源代码的位置完全无关。
启动Java程序(而不是编译器)时,需要正确设置当前工作目录。
如果你从一个shell开始,cd
到你需要它的地方。如果从IDE启动,则应该有一个设置。
答案 1 :(得分:0)
您可以使用相对路径来获取项目的根目录。这段代码,
new File("myFolder").mkdir();
将在项目的根目录中创建一个名为myFolder的新文件夹。如果未指定绝对路径,编译器将始终转到项目的根目录。
如果你想在你的主类所在的地方工作(这与项目的根目录不同),你可以像这样获得你的主类的路径:
URL mainPath = Main.class.getResource("Main.class");
(将Main替换为主类的名称。)
答案 2 :(得分:0)
像那样使用
Path path = Paths.get("");
String s = path.toAbsolutePath().toString();
System.out.println(s);