【发布时间】:2013-05-10 18:39:33
【问题描述】:
我目前正在研究如何从命令行编译 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()); } } }Inner.java
包 b_pack; 公共类内部{ 公共无效 myInner() { System.out.println("内部方法"); } }Inner2.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 包好有些不好?
【问题讨论】:
-
NIO 是在 Java 7 中引入的。使用的是什么版本的 Java?
-
@Reimeus 我使用的包含 javac 的 JDK 是 jdk1.6.0_32。
-
这就是你的答案。您需要升级到 JDK 7。
-
@Reimeus 只是对 JDK 与 JRE 的澄清。我使用的javac属于JDK1.6.0,我明确定义了javac.exe的位置。但是java的版本(在我的电脑上使用
java -version是1.7.0_07。那么它失败的原因是因为包不在JDK中吗? -
仅当您使用 Java 7 中引入的任何新类或语法时...
标签: java eclipse packages javac