IntelliJ中Java调用API获取实时汇率报错求助
问题:Java调用汇率API时出现
NoClassDefFoundError: okio/BufferedSource 我正在开发带GUI的货币转换器,调用Apilayer汇率API时运行报错,代码如下:
import java.io.*; import okhttp3.*; public class Main { public static void main(String []args) throws IOException{ OkHttpClient client = new OkHttpClient().newBuilder().build(); Request request = new Request.Builder() .url("https://api.apilayer.com/currency_data/convert?to=BGN&from=USD&amount=1") .addHeader("apikey", "R2EQE6ev2c2KWFR0GID6lKqvGFD4nrP2") .method("GET", null) .build(); Response response = client.newCall(request).execute(); System.out.println(response.body().string()); } }
运行时抛出错误:
Exception in thread "main" java.lang.NoClassDefFoundError: okio/BufferedSource at okhttp3.internal.Util.<clinit>(Util.java:51) at okhttp3.OkHttpClient.<clinit>(OkHttpClient.java:126) at Main.main(Main.java:7) Caused by: java.lang.ClassNotFoundException: okio.BufferedSource at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ... 3 more
浏览器在线演示可以正常运行,但IntelliJ中报错,已经修正了.method("GET", })为.method("GET", null)解决编译问题,但运行时错误依然存在。
错误原因
这个报错是因为只引入了OkHttp核心库,却缺少它依赖的Okio库。OkHttp底层靠Okio处理IO操作,运行时找不到Okio的类就会抛出这个错误。
解决方案
根据你使用的构建工具,补充完整依赖:
1. Maven项目
在pom.xml中添加以下依赖:
<!-- OkHttp核心库 --> <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>4.12.0</version> <!-- 可替换为最新稳定版 --> </dependency> <!-- OkHttp必需的Okio依赖 --> <dependency> <groupId>com.squareup.okio</groupId> <artifactId>okio</artifactId> <version>3.6.0</version> <!-- 版本需与OkHttp匹配 --> </dependency>
2. Gradle项目
在build.gradle中添加:
dependencies { implementation 'com.squareup.okhttp3:okhttp:4.12.0' implementation 'com.squareup.okio:okio:3.6.0' }
3. 手动导入JAR包
如果没使用构建工具:
- 下载OkHttp和Okio的JAR包
- 打开IntelliJ,右键项目 →
Open Module Settings→Libraries→ 点击+号,导入下载好的两个JAR包 - 执行
Build → Rebuild Project重新构建项目
内容的提问来源于stack exchange,提问作者Kamen Georgiev
相关产品推荐
相关产品推荐

