欢迎来到天天文库
浏览记录
ID:8819999
大小:47.50 KB
页数:2页
时间:2018-04-08
《java程序命令行下的执行》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、JAVA程序命令行下的执行JAVA程序命令行下的执行IED用惯了,基础都快忘记了javac先不说了,环境变量里面设置对了基本没什么问题。关键是java这个命令java-classpath.class的类路径(如果是包的话,需要指定到包上面的路径);引用的类路径xx.xx.aaa(如果是javac的话需要javacxxxxxaaa.java,必须用路径的形式)注意如果源文件的结构是Package的话,classpath指定到.class文件上面,然后直接执行aaa是不行的(javac的话可以),必须按上面的规则。举个例子packagea.b.c;publicc
2、lasshello{publicstaticvoidmain(Stringargs[]){System.out.println("Hellotheworld!");}}此程序可以编译通过,但是执行时,却提示以下错误!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放在它下面,用以下命令进行编译和执行时,可正常通过!D:myxdj>javacd:myxdjabchello.javaD:myxdj>javaa.b.c.helloHellotheworld!D:myxdj>再看下面另外一种情况,先让我们在xdj目录下建立两个文件a.java和b.java文
6、件,其内容如下。a.java文件内容:importa.b.c.*;publicclassa{publicstaticvoidmain(String[]args){bb1=newb();b1.print();}2JAVA程序命令行下的执行}b.java文件内容:packagea.b.c;publicclassb{publicvoidprint(){System.out.println("我是被调用子类的程序输出呀!");}}直接编译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删除掉呀!重新执行编译指令,这次肯定可以编译成功!你可以发现b.java也同时被编译过了,这就是所谓的make编
8、译方式。D:myxd
此文档下载收益归作者所有