JAVA如何在main()中取得当前jar的名字和路径?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA如何在main()中取得当前jar的名字和路径?相关的知识,希望对你有一定的参考价值。

JAVA代码: 如何在main()中取得当前jar的名字和路径?

java 允许我们定位某个 class 的 CodeSource 。
通过 CodeSource 提供的 Location 信息就能够找到相关的文件路径。
假设 aa.jar 的 main class 是 Test,通过
new Test().getClass().getProtectionDomain().getCodeSource().getLocation();
可以获取到jar包的路径。jar的名称就好办了。截取下上面获取到的路径字符串就行了。
参考技术A 使用 System.getProperty("java.class.path")本回答被提问者采纳 参考技术B 通过这个new Test().getClass().getProtectionDomain().getCodeSource().getLocation();可以取到

linux命令行运行jar包,一定要用-classpath指定路径吗?另外jar包名字后面还要跟一个类,这是为啥?

不一定
java -jar jarname就可以了 但这种必须打jar包时指定Main-Class
jar包名字后面跟的类就是运行时的主类,指定了Main-Class就可以不加追问

是两种运行jar文件的命令格式吗?这两种方法哪个都行?即
java -jar xxxx.jar

java -classpath ***.jar

追答

不是
java [-classpath:......] -jar xxx.jar [classname]
以上[]内可以省略
-classpath表示需要加载的jar或类路径 如果就在当前路径执行可以不指定
classname上面解释了

参考技术A 不需要,只要能使用jar命令就行,再跟上相应的参数

以上是关于JAVA如何在main()中取得当前jar的名字和路径?的主要内容,如果未能解决你的问题,请参考以下文章

如何在view中取得activity对象

java 当前系统时间 加一天怎么取得?

如何使用java -jar或java -cp命令运行Sbt Packaged Jar?

11.5-全栈Java笔记:线程基本信息和优先级别

如何在 Java 的新进程中启动“main”?

请教如何在linux下部署java项目同时引入其他jar包,然后执行java项目的main函数的操作