You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java代码String类型不匹配且主类找不到main方法怎么解决?

问题原因及解决方案

核心错误根源

两个报错都来自错误的导包语句:import com.sun.org.apache.xpath.internal.operations.String;

  • java.lang.String是Java默认提供的字符串类,默认全局导入,无需手动声明导入。额外导入的com.sun.org.apache.xpath.internal.operations.String是非标准的字符串操作类,导致代码中所有String声明默认指向该类,和JDK自带的java.lang.String类型不匹配,抛出类型不兼容错误。
  • JVM识别主类的标准是方法签名完全匹配public static void main(java.lang.String[] args),代码中main方法的参数String[]实际指向导入的错误类,类型不符合JVM要求,因此提示找不到main方法。

修复步骤

  • 删除两行无用导入语句:
import com.sun.org.apache.xpath.internal.operations.String;
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

第二行WSDLOutput属于全代码未使用的冗余导入,一并删除即可。

  • 修复WriteToFile方法中的错误代码:原代码中bookTitles.get(String)语法错误,List.get()方法需要传入int类型的索引参数,若要将整个书籍列表写入文件,可直接把列表转成字符串写入,修改后的代码参考:
public static void WriteToFile() {
    try {
        FileWriter myWriter = new FileWriter(myFile.getName(), true); 
        System.out.println("This is the contents of the file:");
        myWriter.write("\n"); // 换行分隔内容,比空字符串更合理
        myWriter.write(bookTitles.toString()); // 写入整个列表的内容
        myWriter.close();
        System.out.println("Successfully wrote to the file.");
    } catch (IOException e) {
        System.out.println("An error occurred.");
        e.printStackTrace();
    }
}
  • 补充WriteToFile方法调用:当前main方法中没有调用写入文件的逻辑,书籍列表只会打印在控制台不会写入文件,可在main方法的try代码块中,循环结束、打印完titleList之后添加一行WriteToFile();触发写入逻辑。

内容的提问来源于stack exchange,提问作者FourEights

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:27:07