【问题标题】:Why is it that i have to use terminal to compile and run a program in java?为什么我必须使用终端在java中编译和运行程序?
【发布时间】:2010-03-03 04:53:13
【问题描述】:

(我是mac用户)

我在整个编程方面都是新手。有人向我解释说我必须在终端中编译我的程序:

cd ~
javac filename.java

然后用

运行它
java filename

为什么我必须这样做? (我只是好奇) 还有 cd ~ 是什么意思/做什么? javac 是什么意思? (那是 javaCompile 吗?) 我还必须将我完成此操作的所有文件保存给我的用户。如果我将 .java 文件保存在我的文档或其他文件夹中,为什么这不起作用?或者我可以这样做吗?

【问题讨论】:

    标签: java compilation


    【解决方案1】:

    你没有。您可以很好地使用像 EclipseNetbeans 这样的 IDE。

    但是,最初使用命令提示符和简单的文本编辑器会更好,因为它有助于理解 Java 的基础知识。尤其是语法、类路径等。

    【讨论】:

      【解决方案2】:
      cd ~
      

      表示切换到您的主目录(在 UNIX 领域中指定为 yours 的位置,包括基于 UNIX 的 Mac OSX)。如果您的用户名是 david,则可能类似于 /home/david/Users/david

      在 UNIX 中,您有工作目录的概念,即您在文件系统层次结构中的当前位置,cd 是您用来更改它的命令。通常,如果您使用相对文件名,程序将在此处查找它们的文件,因此 rm xyzzy 将尝试删除工作目录中的 xyzzy 文件,而 rm /xyzzy 将尝试删除同名文件在顶级(根)目录中。

      而且您没有以这种方式编译和运行Java。这只是一种方法。如果你有一个像 Eclipse 这样的 IDE,你可能根本不需要使用命令行。

      javac 确实是 Java 编译器,它将您的源代码转换为类文件,java 是实际运行这些类文件的 Java 运行时。

      您可以将您的 Java 源代码放在您有权创建文件的任何位置,而不必将它们放在您的主目录中。当然,如果您将它们放在其他位置,例如 /home/david/javasrc/Users/david/javasrc,则需要确保这是您在从命令行编译和运行它们时所在的目录。

      为此,cd 命令更像是以下之一:

      cd /home/david/javasrc
      cd /Users/david/javasrc
      cd ~/javasrc
      

      【讨论】:

      • 是的,这确实有助于分配。只是有点模棱两可:当您在帖子末尾给出 3 个不同的 cd 命令时,是应该按顺序执行这些命令,还是它们都是完成相同任务的不同可能命令的示例?
      • David,无论您的主目录是什么,~ 都是您的主目录的简写。另外两个是显式位置,具体取决于您的实际主目录。 @RobKennedy 对此答案进行了编辑以放入 /Users ,因此Apple可能使用该位置而不是 /home 或其他位置。这就是为什么我明确声明“喜欢其中之一”,因为从技术上讲,您的主目录可以在任何地方。
      【解决方案3】:

      大卫,还记得我对你上一个问题How do I compile and run a program in Java on my Mac的回答吗?

      我相信这里的每个人都会同意我的观点,即获得像 Eclipse 这样的 IDE 是一个好主意。它隐藏了很多涉及的低级乏味,并自动化了您作为开发人员所做的大部分基本例程。

      【讨论】:

      • 这是使用 ide 和类似工具的缺点,它们为新用户提供了太多抽象层次......我个人认为这很糟糕。我认为只有在您已经对基本概念有透彻的了解时,才应该转向使用 ide 和其他类似工具,这使我们的工作更容易和更快……现在我希望有人能告诉我我的思维方式是错误的.. . 只是一个想法!
      • 我明白你的意思,但没有一个适合每个人的抽象级别。例如,了解底层硬件/操作系统的东西会有所帮助,但在不首先掌握这些基础知识的情况下开始学习如何编程当然是可以接受的。人们必须从某个地方开始,我认为从 IDE 开始就可以了。他已经选择了像 Java 这样的高级语言。我们不应该告诉他先学习汇编。
      • 是的,确实如此,但可以肯定的是,这家伙迟早会回归基础……它们是必不可少的……
      • 如果你是一名 CS 学生,你最终必须这样做。
      猜你喜欢
      • 2014-02-05
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多