简单记述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的加载原理也已经快忘完了。今天终于有时间将困扰我好久的问题解决了。
分享到:
相关推荐
Java 与 javac 命令详解 Java 和 javac 命令是 Java 语言的基本组成部分,它们在 Java ...通过这些例子,我们可以看到 Java 和 javac 命令的使用方法和规则,以及它们在 Java 应用程序的编译和执行过程中的重要作用。
本文总结了 JDK 中的各种命令,包括 javac、java、javah、jdb 等,详细介绍了 JDB 调试工具的使用方法和命令列表。通过学习这些命令,可以更好地学习和使用 Java 语言。 一、JDK 命令简介 JDK 中提供了许多实用的...
在开发Java应用程序时,开发者可能会遇到“javac不是内部或外部命令”的错误提示。这种情况通常发生在刚刚安装完Java Development Kit (JDK) 并尝试编译Java代码时。为了解决这个问题,正确配置Java环境变量至关重要...
《在EditPlus中配置javac和java命令》 在IT行业中,编辑器是开发者的重要工具,而EditPlus作为一款功能强大的文本编辑器,因其简洁的界面、高效的代码编写功能以及丰富的自定义设置,深受广大程序员的喜爱。然而,...
2. java命令的用法:java命令用于运行.class文件。需要注意的是,如果源代码中声明了包,必须使用类的完整限定名来运行类。如果源代码文件中首行定义了package,如package com.stopTalking.test,则在运行时需要指定...
《让EditPlus支持javac,java命令》 对于初学者而言,使用编辑器直接运行Java程序无疑极大地简化了开发流程,免去了在命令行反复切换的繁琐步骤。EditPlus作为一款功能强大的文本编辑器,通过配置可以实现对Java编译...
这个简单的例子展示了如何在包含包名的情况下使用`javac`和`java`命令。在实际开发中,我们通常会使用构建工具如Maven或Gradle来自动化这些过程,它们会处理类路径设置和编译任务,使得开发更加便捷。 在压缩包文件...
《EditPlus支持javac,java命令的配置与使用详解》 在软件开发过程中,一个高效且功能丰富的文本编辑器能够极大地提升开发效率。EditPlus作为一款功能强大的文本编辑器,深受程序员喜爱。本文将详细介绍如何配置...
在Java编程过程中,我们通常会使用到javac命令来编译Java源代码。对于初学者或者习惯于使用集成开发环境(IDE)的人来说,了解如何手动使用这些命令非常有必要。 **1. javac命令基本介绍** javac是Java编译器,...
当遇到“java能执行,javac不能执行”的情况时,通常意味着系统能够找到并运行Java解释器(即java命令),但无法定位到javac编译器。这背后可能有以下几种原因: 1. **PATH环境变量配置不全**:在Windows操作系统中...
文档将详细介绍javac和java命令的使用方法,包括-classpath和-sourcepath等参数的用法,以及它们在不同操作系统中的适应性和差异性。 在Java开发中,javac是Java的编译器,它将Java源代码编译成字节码文件(.class...
在DOS环境下,编译Java源文件需要使用`javac`命令。假设我们的`src`目录下有如下结构: ``` src |-- com | `-- example | `-- MyProgram.java ``` 其中`MyProgram.java`是一个位于包`com.example`下的类。编译这个...
本文将深入探讨Eclipse中的`javac`命令和`java`命令,以及它们在Eclipse工作流程中的作用。 一、Eclipse的`javac`命令 `javac`是Java编译器的命令行工具,用于将源代码(`.java`文件)编译成可执行的字节码(`....
本文将详细介绍如何使用`javac`命令来编译Java程序,并通过具体的示例来帮助读者更好地理解和实践。 #### 1. 编写示例源码 首先,我们需要编写一段简单的Java程序。这段程序将输出经典的“Hello, World!”信息。...
示例命令`javac-d.filename.java`,其中`-d`选项指定了编译后的.class文件存放目录。如果源代码位于特定包内,如`hello.java`中的`jiang.xu`包,编译后会在相应目录结构下生成`.class`文件。 - **java**:Java解释器...
### Java零基础 - 使用java命令运行Java程序 #### 编写示例源码 为了能够更好地理解如何使用`java`命令来运行Java程序,我们首先需要编写一段Java源代码。这里我们将创建一个非常简单的程序——“Hello, World!”...
Java命令大全涵盖了几个重要的工具,它们是Java开发者日常工作中不可或缺的部分。这些工具包括`java.exe`、`javac.exe`、`javaw.exe`、`javah`和`javap`,它们各自承担着不同的任务。 1. `java.exe`: 这是运行Java...
本文将从给定文件的标题和部分内容中提取出与Java命令相关的知识点。 首先,Java的可执行文件通常位于Java开发工具包(JDK)的bin目录中。这个目录下包含了多个重要的命令行工具,其中一些我们可以在给定文件的部分...
总的来说,理解和熟练使用`javac`和`java`命令是Java开发的基础。它们允许开发者在命令行环境中编译和运行Java程序,而无需集成开发环境(IDE)。同时,了解如何处理包和类路径对于管理大型项目尤其关键,因为这有助...