JAVA——声明包类的编译与运行解决方案
問(wèn)題描述
? package albert;public class Demo {public static void main(String[] args) {System.out.println("Hello World");}}?以上的java源程序文件位于D:\JDK\我的java程序\Code1\test目錄中,編譯時(shí)在該目錄下打開(kāi)命令行窗口,輸入指令:?
javac Demo.java如圖所示:?
則會(huì)在同一目錄下生成 .class 字節(jié)碼文件,如下圖所示:?
?java Demo?問(wèn)題分析
原因是Demo.java文件中有package包聲明,當(dāng)執(zhí)行A.java源文件時(shí)java虛擬機(jī)首先會(huì)在A.java當(dāng)前目錄尋找字節(jié)碼文件,雖然這下找到了,但是因?yàn)樵贏.java中有包聲明,java虛擬機(jī)緊接著去包目錄下尋找有沒(méi)有A.class字節(jié)碼文件,這下找到了才能夠成功執(zhí)行。?
顯然源文件路徑下再無(wú)其他文件路徑,包括包目錄。
解決方案
編譯:?
javac -d . Demo.java?這樣的意思是編譯出帶包的類,使得 .class 字節(jié)碼文件處在其聲明的包目錄下,當(dāng)運(yùn)行時(shí),讓JVM能在源程序中所聲明的包目錄下找到其對(duì)應(yīng)的 .class 字節(jié)碼文件。?
-d <目錄> 指定放置生成的類文件的位置如下自動(dòng)生成的帶包目錄的 .class 字節(jié)碼文件:?
而且注意,在輸入運(yùn)行命令時(shí),切記輸入完整帶包類名,如下:?
java albert.Demo?參考文章
https://blog.csdn.net/isalberyu/article/details/78507138
https://blog.csdn.net/wbrs13/article/details/4859880
總結(jié)
以上是生活随笔為你收集整理的JAVA——声明包类的编译与运行解决方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JAVA——自定义排序(实现Compar
- 下一篇: JAVA——改变观感