当另一个类调用main方法时,为什么我的扫描器不会输入?

时间:2017-01-07 02:42:54

标签: java java.util.scanner runnable

我的程序应该能够在给定文件的情况下执行java代码。但是,当我尝试使用包含扫描仪的测试类进行测试时,扫描仪不会接受任何输入。现在它只打印,"你的名字是什么?"。 有什么问题?

以下是执行方法:

public void execute()
{
    String fileName = file.substring(0, file.indexOf('.'));
    String[] args = null;
    Class c;
    Object o;
    Method main;
    try
    {
        c = Class.forName(fileName);
        o = c.newInstance();
        main = c.getDeclaredMethod("main", String[].class);
        Thread t = new Thread(new Runnable() 
        { 
            public void run() 
            {
                try
                {
                    main.invoke(o, (Object)args);
                }
                catch(Exception e){}
            } 
        }
        );
        t.start();
    }
    catch(Exception e){e.printStackTrace(System.out);}
}

以下是测试类的代码:

import java.util.Scanner;
public class Test 
{
    public static void main(String[] args)
    {
        Scanner s = new Scanner(System.in);
        System.out.println("What is your name?");
        String name = s.nextLine();
        System.out.println("Your name is " + name);
        System.out.println("testing");
    }
}

0 个答案:

没有答案