【发布时间】:2016-07-06 06:21:17
【问题描述】:
我真的被困在两个部分。 A) 我需要程序找到 RUNNING JAR FILE 的目录,并检查同一目录中是否有一个名为“credits.txt”的文件。 B) 如果不是,它将在 SAME DIRECTORY 中创建文件。
主要问题是无法获取我的文件的路径。
假设正在运行的 jar 文件位于名为“Server”的文件夹中,程序会将名称“Server”保存在字符串中,然后检查该字符串中是否存在文件。如果是,则什么也不做,否则创建文件。
@Override
public void onEnable(){
getLogger().info(ChatColor.GREEN + "Credits has been enabled!");
File file = new File("Credits.txt");
//HERE I NEED THE PROGRAM TO CHECK WHAT DIRECTORY THE RUNNING JAR FILE IS FROM
if (file.exists(//IN THE SAME DIRECTORY AS THE RUNNING JAR FILE)){
getLogger().info(ChatColor.DARK_GREEN + "Credits File Exists");
}else{
getLogger().info(ChatColor.DARK_RED + "Credits File Doesn't Exist!");
//HERE IT NEEDS TO CREATE THE FILE IN THE SAME DIRECTORY OF THE JAR FILE "credits.txt"
}
【问题讨论】:
-
你的困难是什么?请注意,当前工作目录(它在其中查找没有完整路径的文件)不一定是
jar文件所在的位置。 -
不,这不是一件“简单的事情”,事实上 Java 似乎试图阻止你这样做。我不记得如何找到 Jar 目录的详细信息,但它确实涉及一些扭曲。我似乎记得需要使用一些“安全”类型的类或方法。搜索找到 jar 文件的路径以获取详细信息。
-
啊,here it is。不是“安全”而是“受保护”。
getClass().getProtectionDomain().getCodeSource().getLocation() -
但是话虽如此,这可能不是您想要做的,而您的问题实际上可能是XY Problem,您在最佳解决方案时询问“如何解决此代码问题”是完全使用不同的方法。考虑告诉我们您正在尝试解决的总体问题,而不是您当前尝试解决的方式。
-
@HovercraftFullOfEels 如果我没有正确解释我遇到的问题,我很抱歉。我已经更新了第一篇文章
标签: java