使用 JAR 文件
Using JAR Files
所以我仍然是 Java 的菜鸟,我正在尝试一些东西。
我最近使用 jar cvf <name>.jar <source files>
为我的 class 创建了一个 .jar 文件,然后使用该 jar 编译我的驱动程序 class (javac -cp <name>.jar Driver.java
) 但我该如何现在 运行 class 使用 jar?
我尝试了以下 2 个命令:
java Driver
并且,
java -cp <name>.jar Driver
.
第一个给了我一个 NoClassDefFoundError
用于 class ,而后者只给了我一个单行错误。
Error: Could not find or load man class Driver
我做错了什么?有没有可能我把它和其他东西混淆了?
我在不使用任何 IDE.
的情况下尽我所能
您应该将 jar 文件和编译器输出放入 classpath 并指定 main class:
java -classpath "<name.jar>;classes" Driver
编辑(感谢 Kayaman):
如果您是来自 linux/unix 的 运行 命令,则必须使用“:”作为分隔符(在 Windows 中使用“;”)。 "classes" 是包含编译器输出的文件夹的路径。
当创建一个可执行 jar(包含 class 和 main 方法的 jar)时,您应该告诉 jar 哪个是要执行的 mainClass,为此您应该创建一个名为 'Manifest.mf'.
文件应包含以下内容:
Main-Class: MyPackage.MyClass
并且在创建 jar 时,您应该使用它来包含您的清单:
jar cfm MyJar.jar Manifest.mf MyPackage/*.class
并启动您的 jar :
java -jar MyJar.jar
所以我仍然是 Java 的菜鸟,我正在尝试一些东西。
我最近使用 jar cvf <name>.jar <source files>
为我的 class 创建了一个 .jar 文件,然后使用该 jar 编译我的驱动程序 class (javac -cp <name>.jar Driver.java
) 但我该如何现在 运行 class 使用 jar?
我尝试了以下 2 个命令:
java Driver
并且,
java -cp <name>.jar Driver
.
第一个给了我一个 NoClassDefFoundError
用于 class ,而后者只给了我一个单行错误。
Error: Could not find or load man class Driver
我做错了什么?有没有可能我把它和其他东西混淆了?
我在不使用任何 IDE.
您应该将 jar 文件和编译器输出放入 classpath 并指定 main class:
java -classpath "<name.jar>;classes" Driver
编辑(感谢 Kayaman): 如果您是来自 linux/unix 的 运行 命令,则必须使用“:”作为分隔符(在 Windows 中使用“;”)。 "classes" 是包含编译器输出的文件夹的路径。
当创建一个可执行 jar(包含 class 和 main 方法的 jar)时,您应该告诉 jar 哪个是要执行的 mainClass,为此您应该创建一个名为 'Manifest.mf'.
文件应包含以下内容:
Main-Class: MyPackage.MyClass
并且在创建 jar 时,您应该使用它来包含您的清单:
jar cfm MyJar.jar Manifest.mf MyPackage/*.class
并启动您的 jar :
java -jar MyJar.jar