JAVA 和 GIT 如何管理外部资源.正确的技术



在 Java 项目中管理外部文件的正确技术是什么?或者更普遍地在任何项目中。

我目前正在使用 IDE IntelliJ,但我希望这是一个更通用的解决方案,而不是依赖于 IDE 的解决方案。

我有以下文件夹结构:

├── headers
│   └── header1
├── htmlfiles
│   └── reply1.html
├── out
│   └── production
│       └── WebApp-e01
│           └── ch
│               └── miao
│                   └── webapp
│                       └── server
│                           ├── Content.class
│                           ├── Request.class
│                           └── Server.class
├── README.md
├── src
│   └── ch
│       └── miao
│           └── webapp
│               └── server
│                   ├── Content.java
│                   ├── Request.java
│                   └── Server.java <-- MAIN HERE
└── WebApp-e01.iml

我从另一台笔记本电脑上的 git 克隆了该项目,因此绝对文件路径不再有效,因为用户名可能不同,项目名称或位置或许多其他内容。

因此,这意味着在任何类中像这样的代码行都不再有效。

BufferedReader reader = new BufferedReader(new FileReader("/home/kevin/IdeaProjects/ApplicazioniWeb/htmlfiles/reply1.html"))

然后我尝试使用相对路径:

BufferedReader reader = new BufferedReader(new FileReader("./htmlfiles/reply1.html"))

如果我从 Intellij 运行它(因为魔法(,但如果我想从控制台以良好的旧方式运行它,这"很好":

java ch.miao.webapp.server.Server

为了使它工作,我必须再次更改! 我的类中的路径,以及根据我使用的IDE可能会改变,因为inetellij将所有东西都放在out/production/...但是其他 IDE 有不同的位置,如果您在团队中工作,这将是一场噩梦!

所以我想知道是否有一个通用的解决方案,我可以在从 git 克隆项目后从 IDE 运行我的程序或形成命令行并形成任何其他工作站,而无需更改我的文件路径。

您可以使用名为"user.dir"的Java系统属性。它的名称可能有点误导,因为它指向启动 JVM 的目录。

String workingDirectory = System.getProperty("user.dir");
File file = new File(workingDirectory + File.separator + "htmlfiles" + File.separator + "reply1");

最新更新