
正文
Java代码植入 java添加代码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何将下载的java源代码导入到myeclipse中运行
1.首先新建一个文件夹,如c:\\myWorkspace
2.然后在myWorkspace中再新建一个文件夹,名为你的项目名
3.如myProject,然后把你的源代码放到myProject中。
那么现在有文件目录如下
c:\myWorkspace\myProject\src
c:\myWorkspace\myProject\bin
c:\myWorkspace\myProject\build
等等。
4.如果你导入的源代码原本就是一个工程,那么2和3可以省略,直接把工程放到myWorkspace下
如c:\myWorkspace\SomeProject
5打开myeclipse 选择工作空间(workspace)为myWorkspace
6.点击导航栏 "File"-"New"-"Java Project"
7.选择"create project from existing source",并点击"Browse"
8.到C盘下选择myProject
9."Project Name" 必须填写与你的工程文件夹名一致。如myProject
10 点击"Finish"完成
build放的应该是编译后的.class文件
db放的应该是数据库现相关的文件
res放的是其他资源
src放的是.java源文件
相关问答
Q1: 求JAVA 注入进程的例子
此代码注入非依赖注入,是hack里的 代码注入
场景是这样滴:
机器上有一个java进程,我不想停止它,但我想把一段代码植入进去,干
一些事情(获取一些信息,改变一些值,监控一些东西,或者其它猥琐的事情)
这个进程不能停,而且也没有预料到现在的事情,或者这个进程的代码完全不能修改。
好,这篇文章是要干这个事情,它基于 jvm的 jdi或者jvmti 接口
这里用的jvmti,jdi也可以,麻烦不少
应该jdk1.5 就有,需要用c写。1.6 支持另一种方式,java也可以写
以前做过类似的事情,代码找不到了,现在有实现了一番。
直接上代码:
被注入的代码是这样滴:
while(true) {
System.out.println(System.currentTimeMillis());
Thread.sleep(1000);
}
每隔一秒输出当前时间,只是示意用。不管什么java程序都行
我要注入的类,那个方法是固定的:
package com.zms.inject;
import java.lang.instrument.Instrumentation;
public class MyAgent1 {
public static void premain(String s) {
premain(s, null);
}
public static void premain(String s, Instrumentation instru) {
System.out.println("I'm injected! 木哈哈哈哈哈");
System.out.printf("param: %s\n", s);
}
public static void agentmain(String args, Instrumentation inst) {
premain(args, inst);
}
public static void agentmain(String args) {
premain(args);
}
}
编译,打入jar包
MANIFEST.MF
Manifest-Version: 1.0
Created-By: 1.6.0_26 (Apple Inc.)
Agent-Class: com.zms.inject.MyAgent1
Premain-Class: com.zms.inject.MyAgent1
操作代码:
import com.sun.tools.attach.*;
import com.sun.tools.attach.spi.AttachProvider;
VirtualMachine vm=VirtualMachine.attach("24862"); //target java process pid
System.out.println(vm);
vm.loadAgent("/Users/zms/workspace/mt/out/production/agent1.jar","Powered by zms!");
Thread.sleep(1000);
vm.detach();
目标程序结果:
1317283652520
1317283653520
1317283654521
I'm injected! 木哈哈哈哈哈
param: Powered by zms!
1317283655521
1317283656522
Q2: java可以将新代码加入到正在运行的程序中吗?
如果你是在eclipse或Myeclipse中Java代码植入,新代码是指直接在某个方法中增加几行操作(代码不能涉及需要引入Java代码植入的新对象Java代码植入,在方法外面新增的方法也不行)。那么是可以不用重启项目。至于你说是程序Java代码植入,那么就不好说Java代码植入了。运行中的程序是不可能的,你说法可能有问题。
Java代码植入的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java添加代码、Java代码植入的信息别忘了在本站进行查找喔。







