資源描述:
《java程序命令行下的執(zhí)行》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、JAVA程序命令行下的執(zhí)行JAVA程序命令行下的執(zhí)行IED用慣了,基礎(chǔ)都快忘記了javac先不說了,環(huán)境變量里面設(shè)置對了基本沒什么問題。關(guān)鍵是java這個命令java-classpath.class的類路徑(如果是包的話,需要指定到包上面的路徑);引用的類路徑xx.xx.aaa(如果是javac的話需要javacxxxxxaaa.java,必須用路徑的形式)注意如果源文件的結(jié)構(gòu)是Package的話,classpath指定到.class文件上面,然后直接執(zhí)行aaa是不行的(javac的話可以),必須按上面的規(guī)則。舉個例子packagea.b.c;publicc
2、lasshello{publicstaticvoidmain(Stringargs[]){System.out.println("Hellotheworld!");}}此程序可以編譯通過,但是執(zhí)行時,卻提示以下錯誤!D:myxdj>javachello.javaD:myxdj>javahelloExceptioninthread"main"java.lang.NoClassDefFoundError:hello(wrongname:a/b/c/hello)atjava.lang.ClassLoader.defineClass0(NativeMethod)
3、atjava.lang.ClassLoader.defineClass(ClassLoader.java:537)atjava.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)atjava.net.URLClassLoader.defineClass(URLClassLoader.java:251)atjava.net.URLClassLoader.Access$100(URLClassLoader.java:55)atjava.net.URLClassLoader$1.run(
4、URLClassLoader.java:194)atjava.security.AccessController.doPrivileged(NativeMethod)atjava.net.URLClassLoader.findClass(URLClassLoader.java:187)atjava.lang.ClassLoader.loadClass(ClassLoader.java:289)atsun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)atjava.lang.ClassLoader
5、.loadClass(ClassLoader.java:235)atjava.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)在xdj目錄下建立一個abc子目錄把hello.java放在它下面,用以下命令進行編譯和執(zhí)行時,可正常通過!D:myxdj>javacd:myxdjabchello.javaD:myxdj>javaa.b.c.helloHellotheworld!D:myxdj>再看下面另外一種情況,先讓我們在xdj目錄下建立兩個文件a.java和b.java文
6、件,其內(nèi)容如下。a.java文件內(nèi)容:importa.b.c.*;publicclassa{publicstaticvoidmain(String[]args){bb1=newb();b1.print();}2JAVA程序命令行下的執(zhí)行}b.java文件內(nèi)容:packagea.b.c;publicclassb{publicvoidprint(){System.out.println("我是被調(diào)用子類的程序輸出呀!");}}直接編譯a.java文件時,會提示以下錯誤!D:myxdj>javaca.javaa.java:1:packagea.b.cdoesnot
7、existimporta.b.c.*;a.java:6:cannotaccessbbadclassfile:.b.javafiledoesnotcontainclassbPleaseremoveormakesureitappearsinthecorrectsubDirectoryoftheclasspath.bb1=newb();^2errorsD:myxdj>接下來,我們把b.java移到xdjabc下,并把xdj目錄下的b.java刪除掉呀!重新執(zhí)行編譯指令,這次肯定可以編譯成功!你可以發(fā)現(xiàn)b.java也同時被編譯過了,這就是所謂的make編
8、譯方式。D:myxd