JAVA报找不到或无法加载主类的错误

久未见 提交于 2020-08-15 03:56:20

错误说明

本次测试类为TestMain

如果使用常规方式,即,java TestMain.class 运行当前class文件

即会报找不到当前类,就是我们想要运行的TestMain.class文件。

可是TestMain.class就在我们想要运行的目录下啊,而且cmd也是在当前目录打开的,那就应该能正常运行。

先附上正确运行的方式,我们在来看差别

可以看到,只是添加了一个-classpath参数以后,该TestMain.class文件就可以正常运行,看样子问题就出在这个-classpath参数上。

java -classpath C:\Users\nikolaperelman\IdeaProjects\my-netty\src\main\java com.gitee.randomobject.test.TestMain

因为如果不添加-classpath文件的路径,那么就是默认去环境变量中去寻找class文件,默认环境变量一般配置为 JAVA_HOME,%JAVA_HOME%\bin,或者classpath:%JAVA_HOME%\lib\rt.d=jar;%JAVA_HOME%\lib\tools,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\nikolaperelman\IdeaProjects\my-netty\src\main\java com.gitee.randomobject.test.TestMain

设置新生代5m,初始堆10m,最大堆10m,并且打印垃圾回收日志的jvm参数来运行TestMain类

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!