是否可以在不使用可执行文件的完整路径的情况下调用.jar文件?

2022-09-04 21:16:56

我有一个.jar文件,我希望能够调用它,而不必使用其位置的完整文件路径。

例如,如果.jar文件位于:/some/path/to/thearchive.jar

我希望能够运行它:

java -jar thearchive.jar

而不是:

java -jar /some/path/to/thearchive.jar

当我在目录树中的其他地方时。在我的特定情况下,我运行的是安装了OS X 10.5.7的Mac。Java 版本“1.5.0_16”。我尝试将“/some/path/to”添加到PATH,JAVA_HOME和CLASSPATH,但这不起作用。

那么,如何设置从命令行运行.jar而无需使用其完整路径?

更新:要处理的另一个项目是参数。例如:

java -jar /some/path/to/thearchive.jar arg1 arg2

这可能会对以下答案中提到的问题的处理方式产生影响。


答案 1

您可以添加一个变量来保存目录:

export JARDIR=/some/path/to
java -jar $JARDIR/thearchive.jar

我不确定你是否能从环境变量隐式地做到这一点。


答案 2

不,你不能。

运行 jar 不涉及任何类型的类路径机制,因为 jar 文件类路径。-jar

或者,使用 shell 别名启动 jar 或小型脚本文件。


推荐