为什么在我尝试执行我的 jar 时出现此 "Unable to access jarfile" 错误?
Why I obtain this "Unable to access jarfile" error when I try to execute my jar?
我在尝试将 jar 文件(从我的项目创建)执行到 Windows shell(DOS 提示符)时遇到以下问题。
我有一个名为 Main.jar 的文件。如果我解压缩这个文件,它包含一个 mainPkg 文件夹(这是包含 Main class 的包的名称,它本身包含main() 方法)。
所以在 mainPkg 文件夹中有包含 main() 的 Main.class 文件 方法。
好的,我从 shell 进入包含 Main.jar 的目录,然后执行:
C:\Projects\edi-sta\build\jar>java -jar mainPkg.Main.jar
Error: Unable to access jarfile mainPkg.Main.jar
但是如您所见,我获得了无法访问 jarfile mainPkg.Main.jar。为什么?我错过了什么?我该如何解决这个问题并执行我的 Main.jar 文件?
在 jar 中执行包含 main 方法的 class 的语法是:
java -classpath <jarFile> <class>
你的情况:
java -classpath Main.jar mainPkg.Main
如果您想使用 java -jar
执行 jar,您必须创建一个可执行 jar 文件。这可以通过不同的方式完成,具体取决于您使用的构建工具。
基本上你有两种类型的 JAR
- 普通 JAR - 将您的 classes 打包到一个存档中
- 可运行 JAR - 这与普通 jar 类似,不同之处在于您可以使用
java -jar
命令 运行 像这样 java -jar RunnableMain.jar
。
在这一个我们已经配置了 class 有 main(),所以不需要在 jar 命令 中传递 class 名称
假设你的是一个普通的 JAR,你可以像这样执行你感兴趣的class
C:\Users\arkantos\work>java -classpath C:\Project\Main.jar mainPkg.Main
请注意,我已经提到了 JAR 的绝对路径以将其添加到 classpath,因为我在不同的目录中,如果不是,您可以 cd 到包含您的 [=14] 的目录=] 然后像这样调用 Main class
C:\Project>java -classpath Main.jar mainPkg.Main
这里Main.jar
在项目目录中所以不需要给出绝对路径
我在尝试将 jar 文件(从我的项目创建)执行到 Windows shell(DOS 提示符)时遇到以下问题。
我有一个名为 Main.jar 的文件。如果我解压缩这个文件,它包含一个 mainPkg 文件夹(这是包含 Main class 的包的名称,它本身包含main() 方法)。
所以在 mainPkg 文件夹中有包含 main() 的 Main.class 文件 方法。
好的,我从 shell 进入包含 Main.jar 的目录,然后执行:
C:\Projects\edi-sta\build\jar>java -jar mainPkg.Main.jar
Error: Unable to access jarfile mainPkg.Main.jar
但是如您所见,我获得了无法访问 jarfile mainPkg.Main.jar。为什么?我错过了什么?我该如何解决这个问题并执行我的 Main.jar 文件?
在 jar 中执行包含 main 方法的 class 的语法是:
java -classpath <jarFile> <class>
你的情况:
java -classpath Main.jar mainPkg.Main
如果您想使用 java -jar
执行 jar,您必须创建一个可执行 jar 文件。这可以通过不同的方式完成,具体取决于您使用的构建工具。
基本上你有两种类型的 JAR
- 普通 JAR - 将您的 classes 打包到一个存档中
- 可运行 JAR - 这与普通 jar 类似,不同之处在于您可以使用
java -jar
命令 运行 像这样java -jar RunnableMain.jar
。 在这一个我们已经配置了 class 有 main(),所以不需要在 jar 命令 中传递 class 名称
假设你的是一个普通的 JAR,你可以像这样执行你感兴趣的class
C:\Users\arkantos\work>java -classpath C:\Project\Main.jar mainPkg.Main
请注意,我已经提到了 JAR 的绝对路径以将其添加到 classpath,因为我在不同的目录中,如果不是,您可以 cd 到包含您的 [=14] 的目录=] 然后像这样调用 Main class
C:\Project>java -classpath Main.jar mainPkg.Main
这里Main.jar
在项目目录中所以不需要给出绝对路径