使用jar中的类路径类编译并运行javac和java

时间:2018-06-11 21:36:29

标签: java jar classpath javac executable-jar

我正在尝试通过命令提示符在java中运行一个简单的代码。 我有一个包含以下内容的jar.java文件:

public class jar{

public void print()
{
System.out.println("Jar success accesing !");
}}

我也有一个调用use jar class的main.java:

public class main{

public static void main (String args[]){
jar jar1 = new jar();
jar1.print();
}}

我只是尝试编译jar.java然后使它成为一个jar存档,然后使用这个jar编译主类,如下所示:

>javac jar.java
>jar cvf JAR.jar jar.class
>javac -cp JAR.jar main.java

现在,直到这里所有的工作都很好,当我想要运行main时它不起作用:

>java -cp JAR.jar main

我明白了:

Error: Could not find or load main class main.class
Caused by: java.lang.ClassNotFoundException: main.class

我哪里错了?

1 个答案:

答案 0 :(得分:0)

答案是:

java  main

您不需要 -cp ,因为您将所有文件放在同一个文件夹中。 您的代码无法正常工作,因为您覆盖了 -cp (当前目录)的默认值。您的 -cp 仅指向JAR.jar。

类似的解决方案:

java -cp 'main.class;JAR.jar' main
java -cp '.;JAR.jar' main