java - 在运行时重新编译对象

标签 java oop compilation runtime reloading

我正在用java开发一个项目,其中运行主文件后,一些java文件被更改,如果我在同一次执行期间再次运行该文件,输出不会显示java文件中所做的更改

例如有2个文件。 Main.java 和 file1.java

ma​​in.java

public static void main(string[] argv)
{

    file1 obj = new file1();
    obj.view();
        Scanner in = new Scanner(System.in);
        String x = in.nextLine();
    //before entering any value i manually updated the content of file1.java
    obj = new file1();
    obj.view();
}

file1.java(更新前)

public class file1
{

    public void view()
    {

        system.out.println("This is test code!!");
    }


}

file1.java(更新后)

public class file1
{

    public void view()
    {

        system.out.println("That was done for Testing!!");
    }


}

Output :
This is test code!!

This is test code!!

最佳答案

您必须重新编译代码才能看到更改。

你可以做的是用java编译一个字符串(从文件中读取它之后)并通过反射调用类的方法。

HERE是有关如何以编程方式编译字符串的分步指南。

关于java - 在运行时重新编译对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10602832/

相关文章:

java - Selenium Webdriver/Java-等待函数和错误处理

java - Gradle 在错误的 Maven 位置搜索 Ormlite?

c# - 从同一个类中的另一个构造函数调用构造函数

c++ - opencv2/photo/photo.hpp c++​​ 的条件包含取决于 OpenCV 版本

将C代码转换为8086汇编

java - 对这段计算幂集的代码如何工作感到困惑

java - 用作接口(interface)替代的内部类示例

VB.NET: 'friend' 修饰符有什么作用?

c++ - 通过使返回的 obj 常量,强制在编译时编译 constexpr 函数,即使内部计算包含非常量数组?

java - 将 Java 字符串转换为 PostgreSQL 字符变化(《mpaa 评级》)?