目前,我正在研究如何从命令行编译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;
公共(public)类HelloWorld {
公共(public)静态void main(String [] args){
System.out.println(“Hello,World”);
内部myInner = new Inner();
myInner.myInner();
Inner2 myInner2 = new Inner2();
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;
内部公共(public)类{
公共(public)无效myInner(){
System.out.println(“内部方法”);
}
}
Inner2.java
包b_pack;
公共(public)类Inner2 {
公共(public)无效myInner(){
System.out.println(“SecondInner”);
}
}
我正在用javac -d bin -sourcepath -src src/a_pack/HelloWorld.java
编译它
而且效果很好。
现在,我的理解是,因为HelloWorld.java在其import语句中引用了其他包,所以javac进行了编译。
而且我猜想对于所有的Java包,javac在内部都有它们。
反正 -
如果我将以下导入行添加到HelloWorld.javaimport 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软件包很好,而有些却不行呢?
最佳答案
Java NIO是Java 7中引入的。早期版本的JDK的编译器会将任何包含这些NIO类的代码都塞进去。您需要升级到JDK 7或更高版本。