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

标签 java jar classpath javac executable-jar

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

public class jar{

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

而且我还有一个 main.java 调用 use jar 类:

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

我哪里错了?

最佳答案

答案是:

java  main

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

类似的解决方案:

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

关于java - 使用jar中的类路径类使用javac和java编译并运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50806379/

相关文章:

java - Apache Spark 聚合键的工作原理

java - 从某种类型的对象列表中返回匹配的对象

java - 如何在 Apache POI 中获取 Excel 空白单元格值?

java - 通过类加载器以丑陋的方式忽略 JARS

java - 无法在 Intellij 2019.4 中找到或加载主类

java - Java 中神秘的运行时错误

java - 查看解压.jar文件得到的.ser文件

java - 在 Go 中启动 Java 进程

Java 配置构建路径或 WEB-INF/lib 文件夹

java - 如何让 javac 找到 JAR 文件? (Eclipse 可以看到它们)