繁体   English   中英

java中如何正确设置classpath

[英]How to set the classpath correctly in java

我需要使用gson库编译和运行简单代码,但我不能使用 Maven、Gradle 或 IDE。该目录包含Main.javagson-2.9.0.jar

javac -cp gson-2.9.0.jar Main.java正常工作并创建 Main.class

但是当我运行java -cp./*: Main时,我得到

Error: Could not find or load main class Main.

Caused by: java.lang.ClassNotFoundException: Main

我还尝试了以下命令:

java -cp gson-2.9.0.jar Main

java -cp gson-2.9.0.jar: Main

java -cp ./gson-2.9.0.jar:./* Main

但是所有这些命令都给出相同的结果。 我以前从来没有在没有 Maven 或 IDEA 的情况下从命令行运行代码,所以我认为这是类路径规范的问题。 我在这里做错了什么?

如果您的主要 class 在 package 中(具有package...声明),您需要在java调用中包含 package 名称,例如java -cp... mypackage.Main

此外, java文档说明了-cp / --class-path

为了特别方便,包含星号 (*) 基本名称的 class 路径元素被认为等同于指定目录中扩展名为 .jar 或 .JAR 的所有文件的列表。

因此,对.class文件使用*不起作用; 相反,您必须指定目录名称。 根据您的问题,您似乎正在使用 Linux,并且.class文件和 JAR 位于同一目录中,因此以下内容适用于您的情况:

java -cp gson-2.9.0.jar:. Main

(注意:之后的. ,表示包含类路径的当前目录)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM