這裏有一些食物對你的思念:-)
讓我們假設我們有相同的文件
版本1
package mypack;
public class MyClass {
public static void main(String[] args) {
System.out.println(1);
}
}
版本2
package mypack;
public class MyClass {
public static void main(String[] args) {
System.out.println(2);
}
}
編譯的兩個版本版本2像這樣
[[email protected] ~]$ javac mypack/MyClass.java
[[email protected] ~]$ java mypack.MyClass
2
,然後創建一個版本1罐,並將其保存爲「myjar.jar」
現在就來試試
[[email protected] ~]$ java -cp myjar.jar:. mypack.MyClass
1
[[email protected] ~]$ java -cp .:myjar.jar mypack.MyClass
2
正如你所看到的,類加載器並不關心。它只需要第一堂課而忽略第二堂課。
所以這不是文件夾的問題。這是包的問題。 JVM處理包,這些包可以位於組織目錄或jar內。
來源
2014-10-17 13:09:14
Leo
不可以。您不能安全地假定和導入不是可選的。 – 2014-10-17 12:57:39
@ElliottFrisch你指的是哪些進口?謝謝 – user3437460 2014-10-17 13:01:40
在你的問題中的那些; *即使沒有說明包?* – 2014-10-17 13:02:08