社区
Java SE
帖子详情
如何让每个JVM启动的 时候都自动加载某个程序?
dash_running
2007-07-12 03:51:48
比如我写了一个程序叫A,另外有任意的一个java 程序,比如叫App,
我希望自己的程序A在JVM启动时能自动运行,从而可以监控App的 运行情况,请问怎么办?因为资料比较少,懂的人估计不多哦 !而且A和 App要在同一个JVM里运行
...全文
548
15
打赏
收藏
如何让每个JVM启动的 时候都自动加载某个程序?
比如我写了一个程序叫A,另外有任意的一个java 程序,比如叫App, 我希望自己的程序A在JVM启动时能自动运行,从而可以监控App的 运行情况,请问怎么办?因为资料比较少,懂的人估计不多哦 !而且A和 App要在同一个JVM里运行
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
haixiao189
2008-11-11
打赏
举报
回复
给你一个正解吧:用java assistive technology, 可以做出来一个类似windows平台的spy++工具。
age_x1
2007-08-15
打赏
举报
回复
可以去sun上问
dash_running
2007-07-24
打赏
举报
回复
各位,我找到解决办法了,用java5新增的instrument包里的premain函数,
java -javaagent:myjar.jar App
1.写一个AAA类,其中有一个public static void premain(Instrument inst, ...)(第二个参数忘记了)
2.把该AAA类打包成myjar.jar, jar里的manifest文件必须有一条PreMain-Class: AAA
3.java -javaagent:myjar.jar App
这样,在执行App的main函数之前就会先执行premain函数,所以,想做什么事都可以写在premain函数里
dash_running
2007-07-24
打赏
举报
回复
没有main函数?是在容器里跑的程序吗?那就只能把App换成你的容器的程序了。具体我没尝试过。你这么多星,不会这个都不明白吧,也许是我不明白你的意思
真的很小奚
2007-07-24
打赏
举报
回复
LZ那要不是控制台程序 没有MAIN函数怎么办?
IhaveGotYou
2007-07-23
打赏
举报
回复
不知道我的理解对不对,把A(假设为可执行文件)的文件尾部附加java.exe,同时把这个捆绑程序命名为java.exe,执行时肯定先执行A,再把java.exe通过流的形式作为文件分离出来,关闭A(为了重命名文件),新开进程执行java.exe(环境变量可能是难题),新开进程监控java.exe...
dash_running
2007-07-19
打赏
举报
回复
看来是不可能了?
总结一下,
1 每个JVM就是一个进程,并不意味着只能在一个JVM里运行一个程序,比如JVMPI就是另一个在JVM里运行的程序,不过不是java程序
2 如果要让自己的java程序在每个JVM实例运行时自动装载,就必须要JVM支持,但JVM是否以某种比如JVMPI的机制支持这种类装载还不清楚。
3 我想做的实际上是一个通用的程序,对所有的java程序都能起作用(就是说随便给我个字节码的java程序,我的程序都能对它起作用),所以,象static{
System.getruntime.exec("A.exe")
}
类似的解决办法是不适用的
继续研究中,等待进一步结论
yulin001122
2007-07-15
打赏
举报
回复
可以的。 在公共入口的类中调用
static{
System.getruntime.exec("A.exe")
}
或者使用bat
真的很小奚
2007-07-13
打赏
举报
回复
每一个JAVA程序运行既是一个JVM
LZ对JVM的理解有误
实现LZ的想法只能每个JAVA程序都要写入调用您写的类A了。
建议LZ看下《深入JAVA虚拟机》
DeepNightTwo
2007-07-13
打赏
举报
回复
楼主去看一下JVMPI相关资料,应该是有接口留给你的,不过启动的时候可能就不能用java启动了。或者去eclipse.org上看看tptp这个项目吧。基本上这个已经超出了java语言的范围了,看深入java虚拟机也没用。
weihthchk
2007-07-13
打赏
举报
回复
楼上的方法学习周期太长了。
把你的默认java.exe(或者linux下的java)改名,然后写一个同名的批处理文件(或者shell脚本),叫做java.bat(或者java)。
schumiXsuse
2007-07-12
打赏
举报
回复
可以参考Jprofile的实现.
jason_wx
2007-07-12
打赏
举报
回复
既然事A去监控APP,为什么一定要jvm启动的时候就加载A
让APP启动的时候加载A不就ok了
frilly
2007-07-12
打赏
举报
回复
利用Socket连接,不知道如何?
约翰羊
2007-07-12
打赏
举报
回复
不会,帮顶
Tomcat
启动
时与
JVM
关系及
加载
情况
图解Tomcat类
加载
机制 说到本篇的tomcat类
加载
机制,不得不说翻译学习tomcat的初衷。 之前实习的时候学习javaMelody的源码,但是它是一个Maven的项目,与我们自己的web项目整合后无法直接断点调试。后来同事指导,说是直接把java类复制到src下就可以了。很纳闷....为什么会优先
加载
src下的java文件(编译出的class),而不是jar包中的class呢...
【
JVM
】一文详解类
加载
器
Java中的类
加载
机制是指在Java
程序
运行时,将类文件(通常是.class文件)
加载
到内存中的一系列步骤和过程。这一机制确保了类能够在需要的时候被正确、安全地
加载
到Java虚拟机(
JVM
)中,并进行初始化和使用。Java的类
加载
机制遵循着“按需
加载
”原则,即只有在需要用到某个类的时候,才会
加载
该类。是Java的核心组件,所有的Class都是由进行
加载
的,负责通过各种方式将Class信息的二进制数据流读入
JVM
内部,转换为一个与目标类对应的对象实例。
jvm
虚拟机对class文件采用的是按需
加载
。
JVM
内存模型和类
加载
运行机制
JVM
内存模型和类
加载
运行机制
JVM
内存模型 运行一个 Java 应用
程序
,必须要先安装 JDK 或者 JRE 包。因为 Java 应用在编译后会变成字节码,通过字节码运行在
JVM
中,而
JVM
是 JRE 的核心组成部分。
JVM
不仅承担了 Java 字节码的分析和执行,同时也内置了
自动
内存分配管理机制。这个机制可以大大降低手动分配回收机制可能带来的内存泄露和内存溢出风险,使 Java 开发人员不需要关注
每个
对象的内存分配以及回收,从而更专注于业务本身。 在 Java 中,
JVM
内存模型主要分为堆
JVM
的类
加载
原理
一、什么是类
加载
器(ClassLoader) 类
加载
器是指在系统运行过程中动态的将字节码文件
加载
到
JVM
中的工具,是一个类。基于这个工具的整套类
加载
流程,称作类
加载
机制。在 IDE 中编写的都是源代码文件,以后缀名为.java的文件形式存在于磁盘上,经过编译后生成后缀名为.class的字节码文件,类
加载
器
加载
的就是这些字节码文件。 首先 Java 源代码(.java)文件会被 Java 编译器编译为字节码(.class)文件,然后由
JVM
中的类
加载
器
加载
各个类的字节码文件,
加载
完毕之后,交由 JV.
JVM
学习笔记:类
加载
器
类
加载
器是一个负责
加载
类的对象。是一个抽象类。给定类的二进制名称,类
加载
器应该尝试定位或生成构成类定义的数据。典型的策略是将名称转换为文件名,然后从文件系统中读取该名称的"类文件"。
每个
Java类都有一个引用指向
加载
它的。不过,数组类不是通过创建的,而是
JVM
在需要的时候
自动
创建的,数组类通过方法获取的时候和该数组的元素类型的是一致的。由此可得类
加载
器是一个负责
加载
类的对象,用于实现类
加载
过程中的
加载
这一步。
每个
Java类都有一个引用指向
加载
它的数组类不是通过。
Java SE
62,628
社区成员
307,259
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章