繁体   English   中英

从同一个包中的类访问静态方法。 主要()

[英]Access static method from class in same package via. main()

我以前从来没有试过这样做,而且有点沮丧。 同一个包中的两个类:

package test;

public class One {
    public static String test () { return "hello world"; }
}   

和:

package test;

public class Two {
    public static void main (String[] args) {
        System.out.println(One.test());
    }
}

如果我尝试和javac Two.java test /目录里面 ,我得到“无法找到符号”为一体。 但是,如果我从父目录执行它, javac test/Two ,它编译,然后可以运行java test/Two - 但不能再从内部(抛出NoClassDefFoundError,说该类的正确名称是test/Two ,而不是Test )。

没什么大不了的,但是如果周围有更好的方法就好奇,如果有人能帮助我理解这个问题。 我实际上不需要“Two”成为测试包的正式成员,我只需要将它放在同一目录中并在那里编译。

您需要从父目录编译

javac test/Two.java test/One.java

(您可能还想使用-d来说明您希望类文件最终的位置。请注意,您可以编译test/One.java并让编译器找到它依赖的类,但我觉得它更干净指定要编译的所有源代码。)

并与全限定类名来运行

java test.Two

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM