JAVA报找不到或无法加载主类的错误
错误说明
本次测试类为TestMain
如果使用常规方式,即,java TestMain.class 运行当前class文件
即会报找不到当前类,就是我们想要运行的TestMain.class文件。
可是TestMain.class就在我们想要运行的目录下啊,而且cmd也是在当前目录打开的,那就应该能正常运行。
先附上正确运行的方式,我们在来看差别
可以看到,只是添加了一个-classpath参数以后,该TestMain.class文件就可以正常运行,看样子问题就出在这个-classpath参数上。
java -classpath C:Users
ikolaperelmanIdeaProjectsmy-nettysrcmainjava com.gitee.randomobject.test.TestMain
因为如果不添加-classpath文件的路径,那么就是默认去环境变量中去寻找class文件,默认环境变量一般配置为
JAVA_HOME,%JAVA_HOME%in,或者classpath:%JAVA_HOME%libt.d=jar;%JAVA_HOME%lib ools,jar 等等吧,这些配置的路径下边怎么会有我们生成的TestMain.class文件呢,故需要手动指定,这就是-classpath的作用,后边com.gitee.randomobject.test为完整的包名,TestMain及为需要运行的类名。这样,就是一个完整的,可以让jvm找到需要加载的我们自定义的class文件的路径了。classpath顾名思义,就是class(Java的编译后的二进制文件格式)的path(路径)嘛。
添加自定义JVM参数的运行方式
java -Xmx10m -Xms10m -Xmn5m -XX:+PrintGCDetails -classpath C:Users
ikolaperelmanIdeaProjectsmy-nettysrcmainjava com.gitee.randomobject.test.TestMain
设置新生代5m,初始堆10m,最大堆10m,并且打印垃圾回收日志的jvm参数来运行TestMain类