Java 命令行執(zhí)行 .class 文件時(shí)提示找不到或無法加載主類的解決方法

問題的解決方式非常簡(jiǎn)單
以至于稍微動(dòng)動(dòng)腦子就能想明白
而我就是腦子不轉(zhuǎn)彎兒
硬是讓這個(gè)問題困擾了我大半年
這么菜還學(xué)編程.jpg
先說解決方案吧,很簡(jiǎn)單:
去掉文件的后綴名
去掉文件的后綴名
去掉文件的后綴名

猜猜為什么?
提示 1:javac -d 能將 .java 文件編譯到 package 指定的目錄下

提示 2:Java 的包名是 xxx.xxx 的格式

揭曉答案
∵ Java 的包名是 x.x 的格式,
∴ Javac 在編譯的時(shí)候會(huì)將 package 指定的包名轉(zhuǎn)換成 x\x?的目錄結(jié)構(gòu)。
∴ 可以推測(cè) Java 執(zhí)行的時(shí)候也需要嚴(yán)格的指定包名才能運(yùn)行
∴ Java xx.class 會(huì)被識(shí)別成執(zhí)行 xx 目錄下的名為 class 的 .class 文件
可以得出結(jié)論,Java 執(zhí)行 .class 文件時(shí)不需要帶后綴名,
因?yàn)闀?huì)與包名沖突
以上

標(biāo)簽: