[英]java command classpath issue
在这种简单情况下,我遇到了一个奇怪的问题。
我有一个包含以下类的jar文件:
package com.example;
public class Test{
public void perform(){
System.out.println("Performing testing one");
}
}
我创建了一个Main类来按如下方式调用perform方法:
import com.example.Test;
public class Main{
public static void main(String[] args) {
Test test=new Test();
test.perform();
}
}
我已将jar和Main.java文件都放在同一文件夹中,并使用以下命令成功编译了Main.java文件:
javac -cp“。\\ *” Main.java
但是,当我尝试使用以下命令运行Main类时:
java -cp“。\\ *”主要
它给出以下错误:
错误:找不到或加载主类Main
如果我尝试不带-cp
参数运行Main class,则会出现以下错误:
线程“主”中的异常java.lang.NoClassDefFoundError:com / example / Test在Main.main(Main.java:5)引起原因:java.lang.ClassNotFoundException:com.example.Test在java.net.URLClassLoader.findClass (Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)at sun.misc.Launcher $ AppClassLoader.loadClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)...还有1
语法正确,那么我在这里做错了什么...?
使用-cp时,需要一个一个地指定jar名称。 使用*通常不会向类路径添加任何内容。 祝好运!
一切都错了。
com/example
的目录中。 com
的目录中。 编译器命令是
javac com/example/Main.java
执行命令是
java com.example.Main
您不需要只包含一个类的JAR文件。
经过大量的实验和网上搜索,我终于发现我们需要把;
经过classpath使它工作。 因此,以下命令会运行Main类:
java -cp“。\\ *”; 主要
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.