专栏首页cwl_JavaJava基础-动态编译

Java基础-动态编译

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_42528266/article/details/103019587

动态编译
  • 动态编译的应用场景:
    • 可以做一个浏览器端编写java代码,上传服务器编译和运行的在线评测系统。
    • 服务器动态加载某些类文件进行编译
  • 动态编译的两种做法:
    • 通过Runtime调用javac,启动新的进程去操作 Runtime run = Runtime.getRuntime(); Process process = run.exec("javac -cp d:/myjava/ HelloWorld.java");
    • 通过JavaCompiler动态编译
通过JavaCompiler动态编译
  • 第一个参数:为java编译器提供参数
  • 第二个参数:得到 Java 编译器的输出信息
  • 第三个参数:接收编译器的 错误信息
  • 第四个参数:可变参数(是一个String数组)能传入一个或多个 Java 源文件
  • 返回值:0表示编译成功,非0表示编译失败
通过Runtime.getRuntime()运行启动新的进程运行
Runtime run = Runtime.getRuntime(); 
Process process = run.exec("java -cp d:/myjava HelloWorld"); // Process process = run.exec("java -cp "+dir+" "+classFile);
通过反射运行编译好的类

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 老板看了我的代码,直呼“666”,要涨工资?

    背景:如何更规范化编写Java 代码的重要性想必毋需多言,其中最重要的几点当属提高代码性能、使代码远离Bug、令代码更优雅。

    搜云库技术团队
  • 2019 Java 开发者跳槽指南.pdf (吐血整理)

    近期这里搜集了 93 套阿里、腾讯、美团、网易等公司 19 年的面试题,把技术点梳理成一份大而全的“ JavaEE 架构师”面试 Xmind(实际上比预期多花了...

    java思维导图
  • Spring Boot 2.X(九):Spring MVC - 拦截器(Interceptor)

    Spring MVC 中的拦截器(Interceptor)类似于 Servlet 开发中的过滤器 Filter,它主要用于拦截用户请求并作相应的处理,它也是 A...

    朝雾轻寒
  • 面试官,Java8 JVM内存结构变了,永久代到元空间

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    用户1161110
  • 常问的15个顶级Java多线程面试题

    在任何Java面试当中多线程和并发方面的问题都是必不可少的一部分。如果你想获得更多职位,那么你应该准备很多关于多线程的问题。

    搜云库技术团队
  • 文字与编码的奥秘(下)

    在上篇文章中我们已经了解到,计算机内部是采用的二进制进行运算和存储的。通过计算机来代替我们进行日常的工作,必然会遇到如何进行运算以及数据如何进行存储的问题,本篇...

    老钱
  • Java自动化测试框架-04 - TestNG之Test Method篇 - 道法自然,法力无边(详细教程)

    测试方法是可以带有参数的。每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递正确的参数。

    北京-宏哥
  • 慌了!面试官又拿JVM开怼!

    对于Java人来说,JVM无疑是进阶时必须迈过的坎。不管初入职场还是跳槽升职,JVM更是面试时的必考题。如果不懂JVM的话,薪酬会非常吃亏(近70%的面试者挂在...

    Java3y
  • Android Gradle 多渠道打包

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    黄林晴
  • 每个阿里程序员都必须搞懂的Maven基础知识

    以前我们写代码时,jar包都默认放在一个叫 /lib 的目录下,然后把该目录设置为classpath可以读取到的目录,如下图所示:

    老钱

扫码关注云+社区

领取腾讯云代金券