木头和马尾的马尾 2021-01-15 15:12 采纳率: 0%
浏览 62

在程序里动态生成一个类文件再加载,找不到


public class text {

    public static void main(String[] args) throws ClassNotFoundException, IOException {
        String str = "package date20200321.sorm.utils;\n" +
                "\n" +
                "/**\n" +
                " * @description:\n" +
                " * @Author: YaoDong\n" +
                " * @Date: 2021/1/15 2:45 下午\n" +
                " */\n" +
                "public class t {\n" +
                "    private int age;\n" +
                "\n" +
                "    static {\n" +
                "        System.out.println(\"t-----------\");\n" +
                "\n" +
                "    }"
                +
                "    public t(int age) {\n" +
                "        this.age = age;\n" +
                "    }\n" +
                "\n" +
                "    public int getAge() {\n" +
                "        return age;\n" +
                "    }\n" +
                "\n" +
                "    public void setAge(int age) {\n" +
                "        this.age = age;\n" +
                "    }\n" +
                "}\n";


        File file = new File("/Users/huxiao/Documents/yaodong/JAVA-myself-code/java-learning/src/date20200321/sorm/utils/t.java");
        if (!file.exists()) {
            file.createNewFile();

        }
        System.out.println("纯在:" + file.exists());
        BufferedWriter writer=null;
        writer = new BufferedWriter(new FileWriter(file));
        writer.write(str);
        writer.flush();
        writer.close();

        Class c=Class.forName("date20200321.sorm.utils.t");
    }
}
如上所示,在text立面生成一个t.java的类,然后再继续加载这个类。但显示找不到这个类。如果先生成,再在另一个程序里加载是可以的。
  • 写回答

5条回答 默认 最新

  • 封印di恶魔 2021-01-15 15:39
    关注

    因为你生成java文件是在启动项目之后,启动时会把代码进行编译,编译后才能使用,你代码里生成的java文件是源码并没有编译

    评论

报告相同问题?

悬赏问题

  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误