我有一个 Verification.jar 文件正在检查excel文件中的某些条件。我希望在 Verification.jar 存在的同一级别创建一个名为Log的文件夹。
感谢Advence .........
修改
我有文件夹如下
“验证”: - Build,dist,lib,nbproject,src,Test,build.xml
“构建”包含Classes文件夹
“dist”包含 Verification.jar 和Lib文件夹
“lib”包含库文件
我想找到Verification.jar的路径并创建名为输出的文件夹。
如果我更改了驱动器,则应在与 Verification.jar 相同的级别创建文件夹。
String path= getClass().getResource("").getPath();
Output:--getPath:/C:/Java/jdk1.6/bin/Verification/lib/
答案 0 :(得分:2)
使用URL Class.getResource(String name)
方法。
package.ClassName.class.getClassLoader().getResource("package.ClassName");
编辑:
看看@Hovercraft Full Of Eels提出的优秀SO主题 - How to get the path of a running jar file?
答案 1 :(得分:0)
正确的形式是:
String directory = System.getProperty("user.dir");
如果您正在运行.jar文件,则返回当前工作目录,这是.jar所在的目录...
请注意,IDE不运行jar文件,运行main方法所在的.class文件,因此在IDE中运行时,此方法返回项目文件夹
PD:对不起,如果我犯了语法错误,英语不是我的母语。答案 2 :(得分:0)
不是最佳解决方案,但我使用此功能。 jar文件的名称必须与项目相同。适用于Windows和Linux。如果有人可以帮助我证明这一点,我将会诚实。
public String getJarCurrentJar() {
String[] userDir = System.getProperty("user.dir").split("\\"+System.getProperty("file.separator"));
String appName = "";
for (String temp : userDir) {
appName = temp; //Get the application name/jar
}
return System.getProperty("user.dir") + System.getProperty("file.separator") + "dist" + System.getProperty("file.separator") + appName+".jar";
}