Java动态编译[源码是字符串形式]

一、代码如下

import javax.tools.*; import java.io.IOException; import java.net.URI; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author * @version 1.0.0 * <p> * date: 2026/1/7 **/ public class Test1 { public static void main(String[] args) { JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>(); List<JavaFileObject> list = new ArrayList<>(); // 指定源代码 String code = "package org;" + "public class KK{" + " public void test(){" + " System.out.println(\"Hello World!\");" + " }" + "}"; // 添加一个源码对象 list.add(new Source("org.KK", code)); Boolean result = compiler.getTask(null, null, diagnostics, Arrays.asList("-d", "class/"), null, list).call(); System.out.println("结果:" + result); for (Diagnostic diagnostic :diagnostics.getDiagnostics()) System.out.format("出现错误,行号:[%d] 文件:%s%n", diagnostic.getLineNumber(), diagnostic.getSource().toString()); } } class Source extends SimpleJavaFileObject { /** * 源文件的代码 */ final String code; /** * 构造一个字符串源码对象 * @param name 类名,例如 org.Test * @param code 源代码字符串 */ Source(String name, String code) { super(URI.create("string:///" + name.replace('.','/') + Kind.SOURCE.extension), Kind.SOURCE); this.code = code; } @Override public CharSequence getCharContent(boolean ignoreEncodingErrors) { return code; } }

二、关键思路

1、重写SimpleJavaFileObject 类的"CharSequence getCharContent(boolean ignore)"方法。

2、在方法"CharSequence getCharContent(boolean ignore)"内部返回字符串源代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1124939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能手语翻译眼镜系统设计与实现

智能手语翻译眼镜系统设计与实现 摘要 本文详细阐述了一个基于Python的智能手语翻译眼镜系统的设计与实现。该系统通过集成计算机视觉、深度学习和自然语言处理技术,实现了实时手语识别与翻译功能。系统包含硬件接口模块、手语识别模块、翻译处理模块、显示输出模块和用户交…

最近拆了台风机控制系统,发现远景这波人在搞事情。他们家的主控平台玩分层架构,乍看像千层饼——感知层、决策层、执行层三层夹心,中间还抹了SCADA系统当果酱

远景能源风机平台主控制系统 先说感知层的数据采集&#xff0c;这玩意儿活脱脱就是个数据饕餮。举个栗子&#xff0c;他们用Python写的振动传感器数据清洗脚本就有点东西&#xff1a; def process_vibration(raw_data):# 干掉传感器误触发的野值median np.median(raw_data)m…

Heath Hoglund加入Sisvel,担任首席知识产权官

Sisvel 很高兴地宣布任命 Heath Hoglund 为公司首位首席知识产权官。在这一岗位上&#xff0c;他将全面负责公司全球范围内的专利池工作。作为全球顶尖的知识产权交易专家&#xff0c;Hoglund在决定离开Via Licensing后加入Sisvel。他曾在Via Licensing担任总裁四年&#xff0c…

汽车制造柔性排产:实现高效响应与资源优化的关键路径

随着汽车行业逐步向多品种、小批量和定制化生产模式转型&#xff0c;传统刚性排产体系已难以应对日益复杂的市场环境与生产扰动。柔性排产作为智能制造的核心环节&#xff0c;正成为车企提升生产弹性、降低运营成本的重要技术手段。它并非简单的时间表调整&#xff0c;而是一套…

税务工作流智能体设计与实现方案

税务工作流智能体设计与实现方案 一、项目概述与设计理念 1.1 项目背景 税务工作流智能体是基于Coze平台构建的专业化税务处理助手,旨在通过AI技术实现税务流程自动化、智能化和标准化。本系统将税务申报、发票管理、税务咨询、风险评估等核心业务整合到统一的工作流中,显…

新能源电动汽车整车控制器VCU原理图与PCB图详解:控制策略及程序实现探讨

新能源电动汽车整车控制器VCU程序原理图PCB图控制策略 最近在拆解某款量产新能源车的VCU时发现&#xff0c;这玩意儿的控制逻辑比想象中更有意思。整车控制器作为电动车的"大脑"&#xff0c;不仅要处理二十多个ECU的协同工作&#xff0c;还得实时计算驾驶员的意图和…

C#使用ONNX Runtime运行Qwen3Guard-Gen-8B简化部署方案

C# 使用 ONNX Runtime 运行 Qwen3Guard-Gen-8B 实现轻量化内容安全审核 在生成式AI迅猛发展的今天&#xff0c;企业面对的不仅是技术落地的机遇&#xff0c;更是内容合规与风险控制的巨大挑战。当一个聊天机器人可能无意中输出敏感言论&#xff0c;或一篇自动生成的文章触及政…

AI亮相中韩创新创业论坛,MiniMax创始人闫俊杰:在韩用户超200万

1月7日上午&#xff0c;韩国总统李在明在上海国际会议中心出席“中韩创新创业论坛”。 本次论坛中&#xff0c;多位中韩企业家围绕“中韩创业生态的联结”、“通过联结实现共同成长”进行交流。 其中&#xff0c;上海稀宇科技创始人闫俊杰作了简短发言&#xff0c;他表示&…

分布式研发的工具与平台选择

选择分布式研发的工具与平台&#xff0c;核心是构建一个无缝协作的“数字中枢”。其选择标准不应是“单一功能的最强”&#xff0c;而是“平台整合能力的最佳”。关键在于建立一个覆盖“需求-开发-测试-部署-运维”全生命周期的统一信息源&#xff0c;它必须能强力支持异步协作…

国际光学与光子学学会(SPIE)公布2026年度会士名单

学会欢迎来自世界各地的40位新会士成员加入 国际光学与光子学学会&#xff08;SPIE&#xff09;欢迎40位成员成为学会2026年度新会士。他们因其卓越的技术成就&#xff0c;以及对光学与光子学界和SPIE学会所做出的重要贡献&#xff0c;与其他会士同仁一起获此荣誉。SPIE会士是…

城市绿化管理:树木健康状况AI评估系统

城市绿化管理&#xff1a;树木健康状况AI评估系统 引言&#xff1a;从城市绿化的痛点出发 随着城市化进程加速&#xff0c;城市绿化已成为提升居民生活质量、改善生态环境的重要手段。然而&#xff0c;传统的人工巡检方式在面对成千上万棵行道树和公园植被时&#xff0c;暴露出…

Kali利用msf渗透Windows电脑(超详细)

网络安全入门到精通&#xff1a;meterpreter渗透测试技术详解&#xff0c;干货满满&#xff0c;建议收藏学习&#xff01; 本文详细介绍了使用Kali Linux和meterpreter进行渗透测试的完整流程&#xff0c;包括进入管理员模式、生成可执行文件、配置参数、获取靶机访问权限等步…

星海图旗下品牌Galaxea Dynamics携全球首款“开箱即用”VLA一体机平台亮相CES 2026

美国拉斯维加斯&#xff0c;2026年1月6日&#xff0c;备受全球科技产业瞩目的国际消费类电子产品展览会&#xff08;CES 2026&#xff09;盛大启幕。作为具身智能高性能基础硬件领域领军企业&#xff0c;星海图旗下硬件及开发者品牌Galaxea Dynamics&#xff08;GD&#xff09;…

牙科影像CNN分析,诊断快一倍

&#x1f4dd; 博客主页&#xff1a;Jax的CSDN主页 牙科影像智能诊断&#xff1a;卷积神经网络如何将诊断速度提升一倍目录牙科影像智能诊断&#xff1a;卷积神经网络如何将诊断速度提升一倍 引言&#xff1a;牙科诊断的效率瓶颈 一、技术应用场景&#xff1a;从诊所到乡村的全…

Hunyuan-MT-7B购买Token送算力?限时优惠活动开启

Hunyuan-MT-7B&#xff1a;当大模型翻译遇上“一键部署”&#xff0c;AI普惠正在发生 在边疆地区的基层医院里&#xff0c;一位汉族医生面对维吾尔族患者的病历记录束手无策&#xff1b;在西南山区的双语课堂上&#xff0c;教师为找不到高质量的彝汉教学材料而发愁&#xff1b;…

内网渗透实战笔记:信息收集命令快速参考手册​

收藏必备&#xff01;内网渗透信息收集完全指南&#xff1a;从机器角色判断到域管理员定位 本文全面介绍内网渗透测试中的信息收集技术&#xff0c;包括判断机器所处网络区域及角色、本机信息收集&#xff08;操作系统、权限、服务等&#xff09;、域环境信息收集&#xff08;…

deepcode国内使用教程

deepcode国内使用教程 本文面向国内网络环境/国内模型接口的使用场景&#xff0c;整理了从 GitHub 克隆 DeepCode 后&#xff0c;为了“能跑起来 更稳定 更快写代码进文件”需要做的关键修改点与原因。 说明&#xff1a;本文不会写入任何真实 API Key&#xff0c;请按自己的…

天文图像识别:星体、星云与人造卫星轨迹区分

天文图像识别&#xff1a;星体、星云与人造卫星轨迹区分 引言&#xff1a;从通用万物识别到专业天文图像解析 随着深度学习在计算机视觉领域的持续突破&#xff0c;通用图像识别技术已能实现对数千类日常物体的精准分类。阿里近期开源的「万物识别-中文-通用领域」模型&#xf…

从入门到精通域渗透攻防完整教程-域渗透实战指南

《【收藏级教程】域渗透完全指南&#xff1a;从基础到进阶的网络安全攻防手册》 本文全面介绍域渗透技术&#xff0c;涵盖Active Directory基础知识、信息收集方法、凭据获取与横向移动等攻击技术。详细解析PowerView、BloodHound、Mimikatz等工具应用及NTLM、LDAP、Kerberos协…

springboot基于vue的酒店客房预订推荐系统661n2sd8

目录系统概述技术架构功能模块智能推荐系统优势开发技术核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;系统概述…