刚接触VSCode的时候,一般运行java程序会使用一个叫做Code Runner的插件,这个插件支持很多种语言的运行,前提是已经安装了语言的编译运行环境,Code Runner插件是调用系统相关的命令进行执行相应的代码。
下面是段java代码:
image.png
执行结果会找不到class文件:
cd "d:\WrokSpaces\Grammar\Java-Grammar\src\com\wukj\static2\" && javac Test.java && java Test
错误: 找不到或无法加载主类 Test
然后将“package com.wukj.static2;”注释:
image.png
这时候执行结果正确
cd "d:\WrokSpaces\Grammar\Java-Grammar\src\com\wukj\static2\" && javac Test.java && java Test
1
----11
再把“package com.wukj.static2;”手动定位到src下执行java命令:
d:\WrokSpaces\Grammar\Java-Grammar\src\com\wukj\static2>cd ../../../
d:\WrokSpaces\Grammar\Java-Grammar\src>java com.wukj.static2.Test
1
----11
总结:
在执行java指令的时候,首先会寻找CLASSPATH下面配置的路径,CPASSPATHH配置“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;”,按照分号分割的顺序查找class文件,首先是“.”,代表当前文件夹下寻找,然后是“%JAVA_HOME%\lib”,最后是“%JAVA_HOME%\lib\tools.jar”,因为寻找class的方式,是根据package来决定的,在class相同目录下执行java指令,会寻找“com/wukj/static2”,当前文件夹细并不存在其他文件夹,这样纸会找不到,然后定位到src目录下,执行java执行,救护会出错。
网友评论