当前位置: 首页 > news >正文

上海网站制作顾问上海公共招聘网

上海网站制作顾问,上海公共招聘网,怎样免费做自己的网站,wordpress展示页面模板文章目录 概述Code 概述 动态编译和加载外部Java类的核心流程可以概括为以下几个步骤#xff1a; 读取源代码: 首先#xff0c;需要获取到外部的Java源代码。这通常是通过读取文件、网络资源或者数据库中的源代码字符串来实现的。编译源代码: 接下来#xff0c;需要使用Ja… 文章目录 概述Code 概述 动态编译和加载外部Java类的核心流程可以概括为以下几个步骤 读取源代码: 首先需要获取到外部的Java源代码。这通常是通过读取文件、网络资源或者数据库中的源代码字符串来实现的。编译源代码: 接下来需要使用Java编译器来编译这些源代码。这可以通过调用javac命令行工具或者使用Java API中的编译器API如javax.tools.JavaCompiler来实现。生成字节码: 编译过程会生成字节码文件.class文件。这些字节码文件包含了编译后的Java类的信息。加载字节码: 最后需要将这些字节码文件加载到Java虚拟机JVM中。这可以通过创建一个ClassLoader子类并重写其loadClass方法来实现。在这个方法中你可以从文件系统、网络或其他来源读取字节码并使用defineClass方法将其定义为一个Class对象。创建实例和调用方法: 一旦类被加载就可以使用newInstance方法来创建类的实例并调用其方法。 Code package com.artisan.jsr269;import javax.tools.JavaCompiler; import javax.tools.StandardJavaFileManager; import javax.tools.ToolProvider; import java.io.File; import java.io.FileWriter; import java.lang.reflect.Method; import java.net.URL; import java.net.URLClassLoader;/*** author 小工匠* version 1.0* mark: show me the code , change the world*/ public class DynamicCompiler {public static void main(String[] args) throws Exception {//创建源文件String currentDir System.getProperty(user.dir) /boot-beanUtils ;// 定义一个简单的Java类包含一个方法该方法打印出“Hello Artisan”String src package com.artisan.jsr269 ; public class ArtisanComplier { public void methodA() { System.out.println(\Hello Artisan\); }};// 源文件路径和名称String filename currentDir /src/main/java/com/artisan/jsr269/ArtisanComplier.java;File file new File(filename);// 确保源文件所在的目录存在File fileParent file.getParentFile();if (!fileParent.exists()) {fileParent.mkdir();}// 确保源文件存在if (!file.exists()) {file.createNewFile();}// 将源代码写入文件FileWriter fw new FileWriter(file);fw.write(src);fw.flush();fw.close();// 使用JavaCompiler 编译java文件// 获取系统Java编译器JavaCompiler jc ToolProvider.getSystemJavaCompiler();// 获取标准文件管理器StandardJavaFileManager fileManager jc.getStandardFileManager(null, null, null);// 获取要编译的文件对象Iterable fileObjects fileManager.getJavaFileObjects(filename);// 创建编译任务JavaCompiler.CompilationTask cTask jc.getTask(null, fileManager, null, null, null, fileObjects);// 执行编译任务cTask.call();// 关闭文件管理器fileManager.close();// 使用URLClassLoader加载class到内存URL[] urls new URL[]{new URL(file:/ currentDir /src/main/java/com/artisan/jsr269/ArtisanComplier.java)};URLClassLoader cLoader new URLClassLoader(urls);// 加载类Class c cLoader.loadClass(com.artisan.jsr269.ArtisanComplier);// 关闭类加载器cLoader.close();// TODO 在这之前要确保编译任务完成否则这里通过反射实例化会报错// 利用class创建实例反射执行方法Object obj c.newInstance();// 获取类中的方法Method method c.getMethod(methodA);// 执行方法method.invoke(obj);} } 运行结果
http://www.pierceye.com/news/315902/

相关文章:

  • 三合一网站开发架构怎么用dw设计网站页面
  • 资源分享网站怎么做临沂住房和城乡建设厅网站
  • 住房和城乡建设部官方网站办事大厅企业展厅设计公司信息
  • 公司网站设计单页网站怎么做排名
  • 公司产品网站应该怎么做页面模板第三方应用
  • 绍兴网站建设网站站长 网站对比
  • 廊坊哪里做网站好费用
  • 织梦建站教程wordpress支持mysqli
  • 松江醉白池网站建设投资公司设立条件
  • 杭州网络seo优化知识
  • 对网站的建议和优化网银汇款企业做网站用途写什么
  • 商务网站的功能和建设制作外贸网站模板
  • 如何防止网站挂黑链怎么购买国外的域名
  • 企业官方网站地址怎么填微信页面设计网站
  • 国外购物网站有哪些郑州网站搜索排名
  • seo网站优化推广费用装饰行业网站建设
  • idea的网站开发登录页面做网页的
  • 寻找大连网站建设wordpress换模板 seo
  • 二手房公司网站源码网站的维护步骤
  • 衡水企业网站建设公司wordpress 快速回复
  • 网站维护需要关闭网站么找哪些公司做网站
  • 阿里巴巴做轮播网站如何建设学校的微网站首页
  • 国内设计好的网站案例网店设计风格怎么写
  • 网站建设长沙创建网页需要多少钱
  • 南通电商网站建设网站背景怎么设置
  • 无锡网站托管aspnet通讯录网站开发
  • 卫计网站建设工作总结铜陵建设行业培训学校网站
  • 手机网站竞价网页界面设计遵循的原则
  • 徐州seo推广公司广州营销型网站优化
  • 小说网站首页模板安徽华力建设集团网站