错误说明

ee5c4721d1a11e0ee62b9c6dd7ad71f8.png

本次测试类为TestMain

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

9b2630089cd849f67f8c906b6870acbb.png

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

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

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

099a757ebff7e729342c3a37df06ca5b.png

可以看到,只是添加了一个-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类

fd1d4f25adb0968b9cbd034862b364ba.png

来源:oschina

链接:https://my.oschina.net/randomobject/blog/4404697

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐