找不到或无法加载主类
简单分析:
首先,我们先看下javac和java命令的区别,具体可以参考《java核心技术卷二》的4.7.3章节(将类放入包中)和4.8章节(类路径)。
1. javac命令,编译源文件.java,产生二进制.class文件。这个命令是有javac编译器实现的,执行时会去查找类。我们都会在环境变量中设置classpath,这个类路径就是javac命令查找文件的顺序。例如classpath设置为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;, 那么javac命令时,首先查找当前目录,如果没有类文件,则查找第二个路径,以此类推知道找到,否则报编译错误。javac命令查找类路径是以文件分隔符”\”查找的。
2. java命令,执行二进制class文件。该命令是java解释器命令,执行java命令也是同样会去查找类路径。就拿这个例子来说,执行java Test命令的查找类的步骤为,首先查找当前目录下的包路径,查看是否有该类,如果没有查找%JAVA_HOME%\lib\包路径下有无该类,其次查找%JAVA_HOME%\lib\tools.jar\包路径下有无该类。java命令加载类路径(包路径)是通过“.”或者“\”来作为分隔符的,
通过上面两个命令的区别,很容易看出来,上面截图中执行的java Test,会去该路径下执行Test.class:D:\workspace\practice_JEE\test4\src\com\clq\collection\javacore\com\clq\collection\javacore\javacore\,显然该路径是不存在的,所以会报错。
同理,下面几个路径下执行命令的结果就很容易理解了。
1.不同路径下的javac命令执行结果
2. 不同路径下的java命令执行结果
相关阅读
二叉排序树 二叉排序树(Binary Search Tree,BST):又称二叉查找树,是一种高效的数据结构。 定义 二叉排序树或者是一棵空树,或者是具有
Python图像库PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是pytho
我们店铺地址:http://szqianai.1688.com 我们的实体店铺在东莞长安,做饰品的朋友大概都知道,他们进货一般都是从广州批发进货,其不知,
在项目进程中,遇到了一个数据加载常见的问题:前端向服务器发送资源请求,服务端在返回数据的过程中,可能会因为网络或者返回路径出错等
本文参考 夜煞CSDN 的CSDN 博客 ,有改动 全文地址请点击:https://blog.csdn.net/u010549444/article/details/50993274?utm_source=