当我使用 IntelliJ 和 Eclipse 编译程序时,一切正常,但当我在终端中运行 java 或 javac 时,我无法做到这一点。我有问题:
Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object
我设置了 PATH 但它仍然不起作用。 我尝试重新安装JAVA,但还是不行。
java给出的命令:
/Users/ba/anaconda3/bin/java
你有什么想法吗?
最佳答案
当您构建 Java 应用程序时,必须将许多设置传递给 Java 编译器(通常是 javac)。您可以在命令行上和/或在终端中设置环境变量来提供这些设置,但您必须提供它们,否则您的应用程序将无法编译。这就是为什么您收到编译器无法找到“java/lang/Object”的基本定义的错误的原因——您没有告诉它在哪里查找。
当您使用 IDE(开发环境)(例如 IntelliJ 或 Eclipse)时,它们会自动为您提供必要的详细信息。如果您要自己在命令行上执行此操作,则需要完成所有操作。
至少:您需要在终端的 PATH 变量中包含 Java 工具,此外您还需要向 Java 编译器提供“类路径”,以便它知道在哪里可以找到您的应用程序所需的所有库(目录和 JAR 文件等)。请访问此网站了解更多信息:
https://www.ntu.edu.sg/home/ehchua/programming/howto/Environment_Variables.html
这将是一个大主题,因此要么坚持使用 IDE,要么准备好进行更多阅读。
关于java - Mac 上的 JDK NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49581389/