从字符串运行java类

从字符串运行java类,java,Java,有什么办法可以让它工作吗 String ClassName = "testing"; Classname.main(); testing.class是bin文件夹中的一个类 如果我在使用eclipse很重要,您可以这样做: String aux = (String) (Class.forName("java.lang.String")).newInstance(); public Object withName(String className) { try{ Cl

有什么办法可以让它工作吗

String ClassName = "testing";
Classname.main();
testing.class是bin文件夹中的一个类

如果我在使用eclipse很重要,您可以这样做:

String aux = (String) (Class.forName("java.lang.String")).newInstance();
public Object withName(String className) {

    try{
        Class<?> c = Class.forName(className);
        Constructor<?> cons = c.getConstructor();

        return cons.newInstance();
    }catch (Exception e){
        e.printStackTrace();
        return null;
    }
}

然后,您可以使用
aux
执行您想要的操作,例如调用静态方法。

您可以得到如下类:

String aux = (String) (Class.forName("java.lang.String")).newInstance();
public Object withName(String className) {

    try{
        Class<?> c = Class.forName(className);
        Constructor<?> cons = c.getConstructor();

        return cons.newInstance();
    }catch (Exception e){
        e.printStackTrace();
        return null;
    }
}
具有名称的公共对象(字符串类名称){
试一试{
类别c=类别forName(类别名称);
构造函数cons=c.getConstructor();
返回cons.newInstance();
}捕获(例外e){
e、 printStackTrace();
返回null;
}
}
如果您不知道它是哪个类,要找到所需类的方法,可以查看以下帖子:

字符串是否有
main()
方法?不,你可以做到这一点(只是不是像你的问题中所显示的那样,而是以一种稍微不同的方式),这里的关键词是反射。查看
类及其提供的方法。