在 Windows 命令提示符中的 Java 中加载 Main Class 时出错

Error Loading Main Class in Java in Windows Command Prompt

我正在尝试 运行 Java 中的图像压缩代码,但很长一段时间后我没有使用 IDE 来这样做,并且 运行从 windows cmd 本身获取代码。

这是我的代码:

import java.io.*;
import java.util.*;
import java.awt.image.*;

import javax.imageio.*;
import javax.imageio.stream.ImageOutputStream;

public class Compression {

   public static void main(String[] args) throws IOException {

      File input = new File("digital_image_processing.jpg");
      BufferedImage image = ImageIO.read(input);

      File compressedImageFile = new File("compress.jpg");
      OutputStream os =new FileOutputStream(compressedImageFile);

      Iterator<ImageWriter>writers =  ImageIO.getImageWritersByFormatName("jpg");
      ImageWriter writer = (ImageWriter) writers.next();

      ImageOutputStream ios = ImageIO.createImageOutputStream(os);
      writer.setOutput(ios);

      ImageWriteParam param = writer.getDefaultWriteParam();

      param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
      param.setCompressionQuality(0.05f);
      writer.write(null, new IIOImage(image, null, null), param);

      os.close();
      ios.close();
      writer.dispose();
   }
}

在 cmd 中,我位于 Compression.java 所在的目录中。 这是正在发生的事情:

有什么建议吗?我已经尝试了 Stack 上关于类似问题的所有建议,但其中 none 似乎对我有用。

假设您展示了完整代码,您的 class 不在包中,所以这不是问题。

您的问题可能是当前目录默认不在 class 路径中。用这个命令检查它:

set CLASSPATH

要直接 运行 您的代码,请使用:

java -cp . Compression

这将运行Java当前目录作为class路径中的唯一路径。