我正在研究如何从命令行编译java。这是我所拥有的:
这是我所拥有的:
/myjava/compile.cmd /myjava/src/a_pack/HelloWorld.java /myjava/src/b_pack/Inner.java /myjava/src/b_pack/Inner2.java /myjava/bin
你好世界:
包 a_pack; 导入 b_pack.Inner; 导入 b_back.Inner2; 导入 java.util.ArrayList; 导入 java.util.Iterator; 公共类 HelloWorld { 公共静态无效主要(字符串[]参数){ System.out.println("你好,世界"); 内部 myInner = new Inner(); myInner.myInner(); 内层2 myInner2 = 新内层2(); myInner2.myInner(); ArrayList myArray = new ArrayList(); myArray.add(1); myArray.add(2); myArray.add(3); 迭代器 itr = myArray.iterator(); 而 (itr.hasNext()) { System.out.println(itr.next()); } } }
内部.java
包 b_pack; 公共类内部{ 公共无效 myInner() { System.out.println("内部方法"); } }
内部2.java
包 b_pack; 公共类 Inner2 { 公共无效 myInner() { System.out.println("SecondInner"); } }
我正在编译这个,javac -d bin -sourcepath -src src/a_pack/HelloWorld.java
这很好。
现在我的理解是,因为 HelloWorld.java 在它的 import 语句中引用了其他包,所以 javac 去编译这些包。而且我猜对于所有的java包,javac在内部都有它们或其他东西。
无论如何-如果我将以下导入行添加到 HelloWorld.java
import java.nio.file.Files
;
它失败了
D:\.....\myjava>javac -d bin -sourcepath src src/a_pack/HelloWo rld.java src\a_pack\HelloWorld.java:8: 包 java.nio.file 不存在 导入 java.nio.file.Files; ^ 1 个错误
这里有什么故事?为什么有些 java 包好有些不好?