java.lang.ClassNotFoundException,PATH是正确的

时间:2015-12-24 18:56:21

标签: java path classnotfoundexception

我试图创建一个简单的程序,但当然JAVA不这么认为:它并不那么简单。 我需要动态实例化一个类,这意味着用户从键盘中提供类名,然后创建具有该名称的类类型的对象。 代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.reflect.*;

public class NimMain {
    public static void main(String[] args) throws IOException {
        BufferedReader Olvaso = new BufferedReader(new InputStreamReader(System.in));
        String be = Olvaso.readLine();
        String[] kapcsolo = be.split(" ");

        switch (kapcsolo[0]) {      
            case "uj": uj(kapcsolo);    
            case "lep":         
            case "listaz":
            case "ment":
            case "tolt":
        }}


    public static void uj(String[] s) {
        try {
            int b = 2;
            String nev = s[1]; 
            Class NimJatek = Class.forName(nev);
            Constructor con = NimJatek.getConstructor(String[].class, int.class);
            Object xyz = con.newInstance(s,b);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

无法实例化的类是NimJatek,它位于相同(未命名)包中的同一目录中。 当我尝试运行此程序时,它会出现java.lang.ClassNotFoundException错误。

1 个答案:

答案 0 :(得分:0)

我认为你用不太清楚的结构让自己感到困惑。最后,使用输入字符串的第二个值作为类加载。如果你提供正确的字符串,它将被正确加盖。输入字符串:

"uj NimJatek"

将导致正确找到类NimJatek - 如果NimJatek位于您的根包中,则此根包位于您的类路径中。