深入理解JAVA虚拟机--Idea远程执行本地Java代码

简介: 工程配置上传文件配置运行结果源代码联系作者今天在看深入理解JAVA虚拟机的9.3节,作者实现了一个远程执行功能。这个功能可以在远程服务器中临时执行一段程序代码,而去不依赖jdk版本,不改变原有服务端程序的部署,不依赖任何第三方库,不入侵原有的程序,不会对原有程序运行带来任何影响。程序的原理可以去看书,本文主要结合IDEA把使用过程记录一下工程配

今天在看深入理解JAVA虚拟机的9.3节,作者实现了一个远程执行功能。这个功能可以在远程服务器中临时执行一段程序代码,而去不依赖jdk版本,不改变原有服务端程序的部署,不依赖任何第三方库,不入侵原有的程序,不会对原有程序运行带来任何影响。程序的原理可以去看书,本文主要结合IDEA把使用过程记录一下

工程配置

新建一个工程,把书中的5个类倒入,然后写一个测试类(test),这个类的代码就是要让远程服务器自动执行的。test.jsp是用来触发远程服务器执行本地的java代码。目录结构如下图所示:
1

上传文件配置

书中作者使用的是eclipse并自己实现了一个插件,可以把本地文件上传到服务器中去,这样如果有灵感时,直接本地写一段测试代码,然后通过插件一键上传到服务器即可。使用idea不用这样麻烦,idea有自带的上传文件到服务器的插件,插件名称为Remote Host,Remote Host配置如下,首先配置远程服务器的文件夹,我使用的tomcat,我就直接配置到了tomcat目录下的webapp中

2

然后配置mapping,这个就是配置一个对应关系,(本地目录–>服务器目录),

3

这样配置结束后,在本地工程目录上点击“upload to ..“,即可把本地文件上传到服务器中去
4

运行结果

我这边是把编译好的class文件上传到了服务器工程的WEB-INF/classes中,然后把test.jsp上传到了服务器工程的根目录下,这样直接运行ip:port/工程名/test.jsp即可输出我们测试代码的结果,如下图所示
5

源代码

下载地址

联系作者

目录
相关文章
|
7天前
|
Java 测试技术 应用服务中间件
常见 Java 代码缺陷及规避方式(下)
常见 Java 代码缺陷及规避方式(下)
26 0
|
8天前
|
Java
Java中ReentrantLock释放锁代码解析
Java中ReentrantLock释放锁代码解析
25 8
|
10天前
|
Oracle Java 关系型数据库
java体系结构和jvm
java体系结构和jvm
|
12天前
|
前端开发 小程序 Java
uniapp上传图片 前端以及java后端代码实现
uniapp上传图片 前端以及java后端代码实现
28 0
|
13天前
|
设计模式 存储 Java
23种设计模式,享元模式的概念优缺点以及JAVA代码举例
【4月更文挑战第6天】享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享技术有效地支持大量细粒度对象的重用。这个模式在处理大量对象时非常有用,特别是当这些对象中的许多实例实际上可以共享相同的状态时,从而可以减少内存占用,提高程序效率
30 4
|
13天前
|
设计模式 Java 中间件
23种设计模式,适配器模式的概念优缺点以及JAVA代码举例
【4月更文挑战第6天】适配器模式(Adapter Pattern)是一种结构型设计模式,它的主要目标是让原本由于接口不匹配而不能一起工作的类可以一起工作。适配器模式主要有两种形式:类适配器和对象适配器。类适配器模式通过继承来实现适配,而对象适配器模式则通过组合来实现
30 4
|
14天前
|
存储 缓存 算法
优化 Java 后台代码的关键要点
【4月更文挑战第5天】本文探讨了优化 Java 后台代码的关键点,包括选用合适的数据结构与算法、减少不必要的对象创建、利用 Java 8 新特性、并发与多线程处理、数据库和缓存优化、代码分析与性能调优、避免阻塞调用、JVM 调优以及精简第三方库。通过这些方法,开发者可以提高系统性能、降低资源消耗,提升用户体验并减少运营成本。
|
16天前
|
Java 开发工具 流计算
flink最新master代码编译出现Java Runtime Environment 问题
在尝试编译Flink源码时遇到Java运行时环境致命错误:EXCEPTION_ACCESS_VIOLATION。问题出现在JVM.dll+0x88212。使用的是Java 11.0.28和Java HotSpot(TM) 64-Bit Server VM。系统为Windows客户端,没有生成核心dump文件。错误日志保存在hs_err_pid39364.log和replay_pid39364.log。要解决这个问题,建议检查JDK版本兼容性,更新JDK或参照错误报告文件提交Bug至http://bugreport.java.com/bugreport/crash.jsp。
|
4天前
|
Web App开发 Java 应用服务中间件
【Java Web】在 IDEA 中部署 Tomcat
【Java Web】在 IDEA 中部署 Tomcat
18 0
|
7天前
|
Java
代码的魔法师:Java反射工厂模式详解
代码的魔法师:Java反射工厂模式详解
18 0