我是 Java 编程和 Linux 环境的新手。而且我发现很难理解什么是类路径、JVM 如何定位类以及 JAVA API 和许多其他东西。
例如,今天我写了两个简单的类 1)employee 和 2)employeetest 并将它们放在同一个文件夹中。(employeetest 具有“main”方法并在其代码中使用employee。)我编译了employeetest,然后使用“javac”命令执行它。我看到了,employee.class 也被添加到了文件夹中。那么这是否意味着 JVM 会自动编译执行所需的所有文件?
然后我把employee类放到当前目录之外,然后尝试执行employeetest。现在我收到了一个错误ClassNotFound
!为什么会这样?为什么JVM没有在其他目录中搜索员工类?
我放置员工的目录也在我的类路径或我的 linux 中的“PATH”上?从技术上讲,它应该搜索 PATH 中的其他目录吗?
如果我错了,请纠正我,因为我在互联网上阅读了很多东西,我无法清楚地理解这些概念?
那么JVM在哪里搜索类?在“main”类所在的同一目录中?
在我的机器上,当我回显时$JAVA_HOME
没有打印任何内容。但我的java
和javac
命令仍然可以正常执行吗?为什么会这样?是什么意思$JAVA_HOME
?JDK在哪里?它的功能是什么?