在 Eclipse 中使用参考库 Java

Use reference libraries in Eclipse for Java

首先,我明确表示我已经在这个论坛和其他论坛上找到了这个主题,但是那些论坛上提供的 none 解决方案对我有用。

我在 Ubuntu 上使用 Eclipse,我正在尝试为我的 java 项目导入一些 .jar,但我无法让它工作,这是问题的屏幕截图:

正如您在屏幕右上角看到的,okhttp.jar 已添加到构建路径中,并且两个导入语句(通过按“ctrl + shift + o”生成)正确遵循什么出现在左侧的 Package Explore 中。

我也尝试过不使用 eclipse(将 okhttp.jar 和 class 放在同一个文件夹中并使用 javac -cp okhttp.jar Oracle.java 编译文件),但即使编译,当我尝试执行 java Oracle :

时出现此错误
Exception in thread "main" java.lang.NoClassDefFoundError: com/squareup/okhttp/OkHttpClient
    at Oracle.<clinit>(Oracle.java:20)
Caused by: java.lang.ClassNotFoundException: com.squareup.okhttp.OkHttpClient
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 1 more

有人知道导致此问题的原因吗?

我看到您已将其添加为模块,但我不确定这样做是否正确。并非每个 jar 都是一个模块。将它添加为一个简单的 jane 依赖项——没有多少图书馆采用拼图的东西。它应该出现在 'Classpath' 部分。右键单击库将其删除,然后再次右键单击它并添加它,这次是作为类路径依赖项,而不是作为模块。

I have also tried to do it without eclipse (putting okhttp.jar and the class in the same folder and compiling the file with javac -cp okhttp.jar Oracle.java), but even if its compile, I get this error when I try to execute java Oracle

不同的问题。

你有 2 个 'worlds'。编译时间,和运行时间。

对于 'normal' 依赖项,您需要它在这两种情况下都可用 javac,而你整个'session'在eclipse中一般算作'compile time',但是java MyApp算作运行次。

因此:

java -cp okhttp.jar:. Oracle

有效(在 windows 上使用 ; 而不是 :)- 您还需要在 运行 时间指定 okhttp 在类路径上。 Oracle.class 包含 JUST 您的 Oracle.java 文件的 public class Oracle {} 部分中的代码,没有任何其他内容。它是一个中间产品,尚未准备好 运行 交接 'just click it' 可执行文件。