java - 使用类路径运行 Java 程序

标签 java classpath

这是我的第一批 Java 代码之一。如果这个问题太天真了,请原谅我。

我有一个外部 jar 文件,一个 API。我希望能够使用 java 程序调用此 API 中的方法。我写了下面的代码:

更新.java:

import java.io.File;
import java.net.URL;
import java.net.URLClassLoader;
import java.io.IOException;
import rediff.inecom.catalog.product.CSVAPI;

class MyFirstClass{
    private final static String api_key = "xyz";
    private final static String path = "/path/to/myfile.csv";

    public void myFunction() {
        CSVAPI cvsapi = new CSVAPI();
        System.out.println(cvsapi);
        try {
            String output = cvsapi.UpdateCSVAPI(api_key,path);
            System.out.println(output);
            System.out.println("Success!");
        }
        catch (Exception e) {
            System.out.println("catch");
            e.printStackTrace(); 
        }
    }

    public static void main(String args[]){
        new MyFirstClass().myFunction();
    }
}

我使用以下命令编译它:

javac -cp vendorcatalogapi.jar update.java

我正在尝试使用以下命令运行它:

java -cp vendorcatalogapi.jar -cp . MyFirstClass

但是我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: rediff/inecom/catalog/product/CSVAPI
    at MyFirstClass.myFunction(update.java:12)
    at MyFirstClass.main(update.java:26)
Caused by: java.lang.ClassNotFoundException: rediff.inecom.catalog.product.CSVAPI
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 2 more

Java程序运行时如何正确设置classpath?

最佳答案

试试这样执行 在窗口中

java -cp .;path/to/vendorcatalogapi.jar MainClass

在linux环境下

java -cp .:path/to/vendorcatalogapi.jar MainClass

关于java - 使用类路径运行 Java 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25864551/

相关文章:

java - 在 jpql 查询中创建和填充 pojos 并作为列表获取

java - 如何从任何方法访问 ServletContext 实例?

java - ClassPathResource 没有得到类路径

java - 使用 ProGuard 进行文件混淆

java - 如何使用指定类路径的命令行从 jar 运行类

Java 无法从 CLASSPATH 加载类

java - 工具栏小部件与 ScrollView 重叠

java - 如何将值放入数组的每个槽中

java - 在Java中检查类的天气对象是否分配了类的实例的方法是什么?

java - 将 GetOpt 链接到主 jar