简单记述javac -verbose、-d 这两个主要参数、java的-verbose参数
采用问题驱动的方式表达
1、含有目录结构的.java源文件怎样在编译的时候同时生成目录结构
javac -d .\ HelloWrold.java
说明:-d 表示存放.class文件的目录。
javac -verbose HelloWorld.java
说明:-verbose 输出编译时详细信息,包括源文件和类文件的查找路径。
2、一、cmd进入命令行
二、cd d:\test
三、java -verbose HelloWorld
报错:
D:\test>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong nam
e: com/mz/hw/HelloWorld)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
4)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
错误原因说明:
java中的一个类是包名+类名唯一标志的。
还不完全理解,望高手不吝赐教。
3、怎样将一个.class文件加入到类路径中呢?
假定源文件在 c:\mylib\com\shinechina\MyClass.java
编译后c:\mylib\com\shinechina\MyClass.class
怎么指定classpath呢
常见毛病
1、c:\mylib\com\shinechina\
2、c:\mylib\com\
正确
1、c:\mylib\
2、c:\mylib
实际java代码如下(放在D:\test目录下):
package com.mz.hw;
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World!");
System.out.println("HelloWorld的类加在器:"+HelloWorld.class.getClassLoader());
//启动类加载器
System.out.println("引导类(启动类)加载器加载的包:"+java.util.Arrays.asList(sun.misc.Launcher.getBootstrapClassPath().getURLs()).toString());
//系统类加载器
System.out.println("获得系统类加载器:"+ClassLoader.getSystemClassLoader());
System.out.println("获得系统类加载器的父类:"+ClassLoader.getSystemClassLoader().getClass().getSuperclass());
//查看系统类加载器加载了哪些类?
try{
ClassLoader cl = ClassLoader.getSystemClassLoader();
java.lang.reflect.Field classes = ClassLoader.class.getDeclaredField("classes");
classes.setAccessible(true);//修改字段的可访问权限.
java.util.List ret=(java.util.List)classes.get(cl);
System.out.println("系统类加载类列表:"+ret.toString());
}catch(Exception e){
}
//扩展类加载器
System.out.println("获得扩展类加载器:"+ClassLoader.getSystemClassLoader().getParent().getClass());
System.out.println("获得扩展类加载器的父类:"+ClassLoader.getSystemClassLoader().getParent().getClass().getSuperclass());
}
}
java基础知识好久不看了,很多都忘记了,还是在两年前学习的javac和java的用法,前些时候想要把几个class文件打成一个jar包,jar命令的使用方法已经不记得了,搞了好久才搞出来。对javac、java的加载原理也已经快忘完了。今天终于有时间将困扰我好久的问题解决了。
分享到:
相关推荐
针对javac不是内部命令的错误,简单有用的java环境变量设置法
很多人都会使用IDE编写代码。但是最基本的Java基础java与javac命令可能大家都没这么在意。而这个正是OCJP证书或者笔试必考的内容。
让EditPlus支持javac,java命令.pdf
让EditPlus支持javac,java命令.rar
让EditPlus支持javac,java命令[归纳].pdf
对classpath的理解,使用javac命令进行编译.java文件和使用java命令运行.class文件时,对含有包名的类的例子(是一个简单的例子,配有源码和运行结果图)
本文详细介绍了如何使用java命令来运行已经编译好的Java程序,并附带示例源码和详细步骤。通过阅读本文,您将学习到以下内容: 编写Java源代码的示例; 使用javac编译器编译Java程序的方法; 使用java命令运行Java...
本文详细介绍了如何使用javac命令来编译Java程序,并附带了示例源码。通过阅读本文,您将学习到以下内容: 编写Java源代码的示例; 打开命令提示符或终端的方法; 导航到Java源代码所在目录的步骤; 使用javac...
主要介绍了JAVA和JAVAC 命令详细介绍的相关资料,本文对java 和javac 命令进行了详解,并在Windows和Linux 平台分别说明,需要的朋友可以参考下
主要介绍了eclipse javac命令与java命令的相关资料,需要的朋友可以参考下
本人根据学习jdk命令 总结的一套jdk命令大全 日后还会有更新 请谅解编写仓促
在用到有关java源程序的编译命令时,有时会不知道怎么用,因为用惯了集成开发环境。在这里只是一个小小的总结,希望对你有用。
我们使用了两个命令 javac 和 java。 javac 后面跟着的是java文件的文件名,例如 HelloWorld.java。 该命令用于将 java 源文件编译为 class 字节码文件,如: javac HelloWorld....注意:java命令后面不要加.class。
对java常用命令java及javac做了深入介绍,以及这些命令在带包情况下的不同使用方式。
jdk安装检验,java能执行,javac不能执行的原因
我再学java的时候,自己总结的笔记 ,希望对大家有帮助。
关于nb-javac! “ nb-javac”是OpenJDK“ javac”的补丁版本,即Java...要获取特定版本,请使用以下命令$ git checkout 运行以下命令以构建nb-javac。 $ ant -f ./make/langtools/netbeans/nb-javac clean jar 两个jar
java实现学生姓名的增删改查功能 该程序通过使用一个字符串数组来存储学生姓名,使用 Scanner 类来...如果配置好了java环境变量可以直接通过javac java命令来编译运行,当然可以在eclispse或者vscode,idea工具里面运行
Java命令详解,拿来和大家一起分享。javaw.exe,javac.exe;
主要演示Java中使用命令打jar包的实例过程,很实用,希望能给大家做一个参考。