【问题标题】:How to compile Java programs from Eclipse using terminal on a Mac如何在 Mac 上使用终端从 Eclipse 编译 Java 程序
【发布时间】:2014-07-21 21:29:52
【问题描述】:

我正在尝试学习如何在终端中编译在 Eclipse(一个 IDE)上制作的 Java 程序。打开终端后立即开始,在终端中编译我在 Eclipse 上制作的程序应该采取哪些步骤?感谢您的帮助。

更新:我已经导航到我的 java 文件夹和包含我的程序的包,并执行了 javac Hello.java 行(Hello 是基本的“Hello World”程序我正在尝试编译)但是当我执行 java Hello 时出现一个大错误:

线程“主”java.lang.NoClassDefFoundError 中的异常:Hello(错误名称:homeWorkPackage/Hello) 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:800) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:71) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:361) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:425) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:358) 在 sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

我做错了什么?

【问题讨论】:

  • 没有直接的方法可以做到这一点,因为 Eclipse 项目往往具有复杂的类路径。最好使用 maven。
  • 请参考official tutorials

标签: java eclipse macos compiler-construction terminal


【解决方案1】:

如果您使用的是 eclipse,则不需要从终端编译,但是您可以这样做:

导航到包含.java 文件的项目目录。然后您可以运行 javac ClassName.java 例如javac Cake.java javac 是 Java 语言编译器。此命令将编译源代码(您的 .java 文件)。要运行它,你可以去java ClassName。例如java Cakejava 启动 JVM。命名的类将被加载并开始执行。您没有在java ClassName 命令中包含.class 文件扩展名。

当您需要浏览文件系统时,我认为this 页面可以很好地概述命令,但这里有一些您可能需要完成此任务:

cd - 更改目录(后跟目录名称)例如cd Documents

ls - 列出文件信息(可以带一些参数)

.. 可以带你回到一个目录。例如cd .. 会让你回到一个目录

您也可以点击tab 自动完成目录/文件名。

【讨论】:

  • 感谢您的帮助!在我做 java Classname 之前一切都很好。我为我的名为 Hello 的基本 java 程序尝试了它,它只是 Hello World,但它给了我这个:线程“main”中的异常 java.lang.NoClassDefFoundError: Hello (wrong name: homeWorkPackage/Hello) 后跟一长串语句以“at java.something”开头有什么办法解决吗?
  • Hmmm... java.lang.NoClassDefFoundError 当 JVM 无法在运行时找到在编译期间可用的特定类时将抛出。您可能想要查找构建时间和运行时间类路径的差异。如果您搜索收到的错误,您会在此站点上找到更多信息。 here 是处理此错误的问题。 here 是关于它的 java 文档。
  • 另一方面,您需要从终端编译是否有特殊原因?我之所以这么问,是因为您似乎正在学习,并且可能不值得用不必要的步骤过度复杂化(除非有特殊原因需要以这种方式编译和运行)。我希望我在这件事上有所帮助。干杯
【解决方案2】:

根据official tutorials(假设您已正确配置JDK:

  • 将目录更改为保存文件的目录(使用cd 命令)
  • 使用命令javac [filename.java]编译程序
  • 现在目录中应该有一个类文件

【讨论】:

    猜你喜欢
    • 2014-02-05
    • 2014-12-12
    • 2015-11-03
    • 2014-12-16
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 2020-07-31
    • 2015-05-25
    相关资源
    最近更新 更多