在Java中将图像转换为base64字符串

在Java中将图像转换为base64字符串,java,image,base64,encode,apache-commons-codec,Java,Image,Base64,Encode,Apache Commons Codec,我正在尝试使用apache.commons.codecjar文件将从URL获取的图像文件转换为Base64字符串 Java代码 import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.net.URL; imp

我正在尝试使用apache.commons.codecjar文件将从URL获取的图像文件转换为Base64字符串

Java代码

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import org.apache.commons.codec.binary.Base64;

public class HelloWorld {

public static void main(String args[]) {
    
     String imageUrl = "http://www.avajava.com/images/avajavalogo.jpg";
        String destinationFile = "image_1.jpg";

        try {           
            // Reading a Image file from file system
            URL url = new URL(imageUrl);
            InputStream is = url.openStream();

            BufferedInputStream imageInFile = new BufferedInputStream(url.openConnection().getInputStream());
            byte imageData[] = new byte[2048];
            imageInFile.read(imageData);

            // Converting Image byte array into Base64 String
            String imageDataString = encodeImage(imageData);
            System.out.println("imageDataString : " + imageDataString);




            System.out.println("Image Successfully Manipulated!");
        } catch (FileNotFoundException e) {
            System.out.println("Image not found" + e);
        } catch (IOException ioe) {
            System.out.println("Exception while reading the Image " + ioe);
        }

}

public static String encodeImage(byte[] imageByteArray) {
    return Base64.encodeBase64URLSafeString(imageByteArray);
}
}

每当我运行代码时,都会出现以下错误

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
The method encodeBase64URLSafeString(byte[]) is undefined for the type Base64

at helloWorld.HelloWorld.encodeImage(HelloWorld.java:51)
at helloWorld.HelloWorld.main(HelloWorld.java:35)
即使在导入Base64类之后,我也无法理解哪里出了问题。请帮助

编辑1

IDE也给出了方法“encodeImage”的以下错误

编辑2:

项目的Java构建路径

根据版本1.4中添加的方法

仔细检查您正在使用的Jar版本。

根据版本1.4中添加的方法


仔细检查您正在使用的Jar的版本。

Hmm。您有什么版本的codec.Jar?该方法是从1.4开始的
。我使用的是此链接中提供的1.10版,那么您不应该出现此错误。你能仔细检查一下编译器的类路径上有什么吗?请检查我的第二版你有两个版本的codec.jar。删除旧的。你有什么版本的codec.jar?该方法是从1.4开始的
。我使用的是此链接中提供的1.10版,那么您不应该出现此错误。你能仔细检查一下编译器的类路径上有什么吗?请检查我的第二版你有两个版本的codec.jar。删除旧的。看起来露西无法创建它。它说“未解决的编译问题”。这是一个构建时错误。好的,更准确地说,这是一个运行时错误,当您遇到由编译器创建的存根代码而不是它无法编译的真实代码(它将在构建时报告)时。看起来Lucy无法构建它。它说“未解决的编译问题”。这是一个构建时错误。好的,更准确地说,这是一个运行时错误,当您遇到由编译器创建的存根代码而不是它无法编译的真实代码(它将在构建时报告)时。