Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse与手动编译的区别_Java_Eclipse_Generics - Fatal编程技术网

Java Eclipse与手动编译的区别

Java Eclipse与手动编译的区别,java,eclipse,generics,Java,Eclipse,Generics,我有一段代码: String packageName = ""; try { packageName = Class.forName(new Exception().getStackTrace()[1].getClassName()).getPackageName(); } catch (ClassNotFoundException e2) { // TODO Auto-generated catch block e2.printStackTrac

我有一段代码:

String packageName = "";
    try {
        packageName = Class.forName(new Exception().getStackTrace()[1].getClassName()).getPackageName();
    } catch (ClassNotFoundException e2) { // TODO Auto-generated catch block
        e2.printStackTrace();
    }
当我将它作为Eclipse项目的一部分使用时,一切正常,但是当我从命令Promt编译相同的.java文件时,我得到以下错误:

symbol:   method getPackageName()
location: class Class<CAP#1>
 where CAP#1 is a fresh type-variable:
 CAP#1 extends Object from capture of ?
1 error

有没有办法改进这段代码,使其正常工作?

错误告诉您使用的是不存在的Class.getPackageName方法。查看显示这个方法是存在的,但是因为Java9

结论:在Eclipse中使用Java9或更高版本,但在命令提示符中使用Java8或更早版本


确定要使用的Java的实际版本,并在任何地方使用相同的版本。然后阅读该版本JDK的javadoc,了解哪些方法可用。

Agree应该是java版本不匹配的。通过提供命令行帮助我们,还可以使用java版本和javac-version