我正在研究如何从命令行编译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 包好有些不好?