【发布时间】:2013-09-06 02:58:05
【问题描述】:
我知道这是一个基本问题。我一直在使用 Java 很长一段时间......但是今天我突然想到在没有 IDE 的情况下创建一个包。所以我认为以下应该有效:
package test;
class Node {
int data;
Node left, right;
public Node(int data) {
this.data = data;
this.left = left;
this.right = right;
}
}
class SumBinaryTree {
public static void main(String[] args) {
////
}
}
现在,我认为现在包 test 包含类 Node 和类 SumBinaryTree。在做了javac SumBinaryTree.java之后,我写了如下代码:
package test;
class Test {
public static void main(String[] args) {
Node t = new Node(0);
}
}
现在,由于存在package test;,我认为这会起作用。但是,在执行javac Test.java 时,两条 Node 行出现错误。然后我意识到我不知道发生了什么正确的事情,并且可以从你们那里得到一些帮助来理解这一点!
非常感谢。
【问题讨论】:
-
您是否尝试过使用
javac SumBinaryTree.java Test.java? -
...您对 Java 编译和运行的工作方式有一个非常错误/不完整的模型。猜测一下,我认为有关软件包的官方教程可能对您有用:docs.oracle.com/javase/tutorial/java/package 同样相关的是 class path 上的教程(docs.oracle.com/javase/tutorial/essential/environment/…)及其链接到的技术说明(@ 987654323@).
-
这就是在 IDE 进入之前的早期编程的确切方式。好吧,试着离开目录然后编译。
javac test/Test.java然后以java test/Test运行。 -
查看 javac 文档中的示例部分:docs.oracle.com/javase/7/docs/technotes/tools/windows/…
-
@H-Patel 我会对历史上的说法提出异议。我想说编程是在很长一段时间内使用某种形式的自动化工具完成的,只要程序员能够可靠地重现构建一个非平凡的程序是显而易见的。如果它不是我们所知道的 IDE,它就是 Emacs 和 Makefile,或者是一堆用于管理事物的 shellscript 和实用程序。