【发布时间】:2012-05-26 13:29:14
【问题描述】:
我正在尝试编辑一个类文件并使其在运行时可供 JVM 使用。 这可能吗,我该怎么做?
例如:
main() {
for (int i=0;i<10;i++) {
NewClass.method();
//ask user if to continue..
}
}
public class NewClass() {
static void method() {
sysout("hi");
}
}
当这个循环正在执行时,我想更改文件 NewClass() 并将其加载到 JVM 中,以便它打印“再见”。
完整代码如下:
try {
for (int iCount = 0; iCount < 10; iCount++) {
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
System.out.print("Enter which method:");
int i = Integer.parseInt(br.readLine());
System.out.println(i);
if (i == 1) {
Called.calledMethod1();
} else {
Called.calledMethod2();
}
}
} catch (NumberFormatException nfe) {
System.err.println("Invalid Format!");
}
我想运行一个类的主方法,当它运行时我想引用另一个类,编辑它,然后引用第二个类的相同方法并获得不同的输出。
我不想想要:
- 停止 jvm
- 编辑代码
- 再次运行代码。
我想要
- 在运行时编辑代码,并立即反映所做的更改。
【问题讨论】:
-
为了让你的工作更轻松,这里是完整的代码: try{ for(int iCount=0; iCount
-
你应该把代码放在你的问题中。
-
解释得更好:您希望能够在运行时动态加载一个类并执行其方法之一?
-
我建议使用
Scanner从控制台读取。您是否真正关注类加载或向方法添加参数会解决您的问题?更具体。 -
我想运行一个类的主要方法,当它运行时我想引用另一个类,编辑它并引用第二个类的相同方法以获得不同的输出。基本上我不想1.停止jvm,2.编辑代码,3.再次运行代码。我想1.在运行时编辑代码并反映更改。
标签: java jvm on-the-fly