gpt4 book ai didi

java - 为什么在代码编译正常并且设置了类路径时找不到 base64 类

转载 作者:行者123 更新时间:2023-11-29 05:17:37 24 4
gpt4 key购买 nike

为什么下面的代码会报错

C:\temp>java Test -cp commons-codec-1.9.jar auth string: xxx Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/co dec/binary/Base64 at Test.main(Test.java:22) Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.binary.Bas e64 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) ... 1 more

代码

import org.apache.commons.codec.binary.Base64;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;


public class Test {

public static void main(String[] args) {

try {
String webPage = "xx";
String name = "xxx";
String password = "xx";

String authString = name + ":" + password;
System.out.println("auth string: " + authString);
byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
String authStringEnc = new String(authEncBytes);
System.out.println("Base64 encoded auth string: " + authStringEnc);

URL url = new URL(webPage);
URLConnection urlConnection = url.openConnection();
urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc);
InputStream is = urlConnection.getInputStream();
InputStreamReader isr = new InputStreamReader(is);

int numCharsRead;
char[] charArray = new char[1024];
StringBuffer sb = new StringBuffer();
while ((numCharsRead = isr.read(charArray)) > 0) {
sb.append(charArray, 0, numCharsRead);
}
String result = sb.toString();

System.out.println("*** BEGIN ***");
System.out.println(result);
System.out.println("*** END ***");
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

}

最佳答案

尝试在类名之前的命令中放置 cp 标志:

java -cp commons-codec-1.9.jar Test

这是来自 java 命令:

Usage: java [-options] class [args...]

(to execute a class)

关于java - 为什么在代码编译正常并且设置了类路径时找不到 base64 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25970388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com