我有一个可执行的jar文件,我希望它能够读取和写入信息到位于与.jar文件相同的目录的txt文件。我怎样才能做到这一点?我怎样才能得到可执行的jar文件目录路径。它只需要在Windows平台上工作,它是一个桌面应用程序。如何在java中知道jar文件的目录?
1
A
回答
1
1
我有一个可执行的jar文件,我希望它能够读取和写入信息到位于与.jar文件相同的目录的txt文件。
不要这样做!大多数操作系统制造商一直都表示不会将应用程序和应用程序数据放在同一个位置。应用程序数据的最佳位置是user.home
的子目录。
E.G.
import java.io.File;
public class QuickTest {
public static void main(String[] args) {
String[] pkgPath = { "com", "our", "app" };
File f = new File(System.getProperty("user.home"));
File subDir = f;
for (String pkg : pkgPath) {
subDir = new File(subDir,pkg);
}
System.out.println(f.getAbsoluteFile());
System.out.println(subDir.getAbsoluteFile());
}
}
1
Class.getProtectionDomain()。getCodeSource()的getLocation()将返回一个包含你称它的类,如果它在一个JAR的JAR的位置。
不过,另请参阅安德鲁汤普森的答案。
1
下面的代码片段会为你做到这一点:
final File f = new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath());
与main
类取代MyClass
产生的File
对象f
表示已执行的.jar
文件。 您可以使用此对象来获取文件所在的目录,并使用它来构建目录路径。
相关问题
- 1. 如何知道agument是否是Java中的目录或文件
- 2. 如何知道jar文件的用途?
- 3. 如何从类目录/ jar文件中避免java文件?
- 4. 如何知道当前目录树中是否存在文件
- 5. jbpm不知道jar文件
- 6. java:如何将jar文件中的目录复制到tmp目录中?
- 7. Java:如何知道给定类名使用哪个jar文件?
- 8. 如何知道java程序需要运行哪些jar文件?
- 9. 如何在maven目标目录中的JAR文件中运行java类?
- 10. 如何知道递归目录结构中的文件路径
- 11. 有无论如何知道java中的服务器文件目录结构?
- 12. 如何_directly_从.JAR子目录中获取文件列表 - JAVA
- 13. 如何知道项目的lib目录?
- 14. 知道什么方法在.jar文件
- 15. 如何知道文件/目录是否隐藏在编程C
- 16. 如何知道.jar文件中的哪些类被引用?
- 17. 如何获取JAR文件中目录下的文件列表
- 18. 如何知道文件何时添加到目录?
- 19. 如何知道在OS/X中启动可执行文件的目录?
- 20. LDAP + Java:如何知道我的活动目录的名称
- 21. 如何知道默认批处理文件目录?
- 22. 如何知道在java中保存文件的无效路径
- 23. 如何知道Java应用程序使用的所有类/ jar文件
- 24. 如何在java中修补jar文件?
- 25. Tomcat中的jar文件7 lib目录
- 26. 阅读目录中的jar文件
- 27. lib目录中jar文件的位置
- 28. 创建jar文件目录?
- 29. 创建jar文件目录
- 30. 如何知道我的SVN信息库中目录中的哪些文件?
http://stackoverflow.com/questions/320542/how-to-get-the-path-of-a-running-jar-file – 2012-06-16 17:43:47