`
gongmingwind
  • 浏览: 588562 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

javac、java命令的使用

阅读更多
简单记述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的加载原理也已经快忘完了。今天终于有时间将困扰我好久的问题解决了。
分享到:
评论
1 楼 jiangshuiy 2013-03-31  
2中的报错是因为的源码有 package,而你的命令里面没有package,路径不匹配

相关推荐

    java与javac命令详解

    Java 与 javac 命令详解 Java 和 javac 命令是 Java 语言的基本组成部分,它们在 Java ...通过这些例子,我们可以看到 Java 和 javac 命令的使用方法和规则,以及它们在 Java 应用程序的编译和执行过程中的重要作用。

    JDK命令学习 javac java javah jdb

    本文总结了 JDK 中的各种命令,包括 javac、java、javah、jdb 等,详细介绍了 JDB 调试工具的使用方法和命令列表。通过学习这些命令,可以更好地学习和使用 Java 语言。 一、JDK 命令简介 JDK 中提供了许多实用的...

    针对javac的命令错误,jdk环境变量设置方法

    在开发Java应用程序时,开发者可能会遇到“javac不是内部或外部命令”的错误提示。这种情况通常发生在刚刚安装完Java Development Kit (JDK) 并尝试编译Java代码时。为了解决这个问题,正确配置Java环境变量至关重要...

    让EditPlus支持javac,java命令.rar

    《在EditPlus中配置javac和java命令》 在IT行业中,编辑器是开发者的重要工具,而EditPlus作为一款功能强大的文本编辑器,因其简洁的界面、高效的代码编写功能以及丰富的自定义设置,深受广大程序员的喜爱。然而,...

    windows命令行中java和javac、javap使用详解(java编译命令)

    2. java命令的用法:java命令用于运行.class文件。需要注意的是,如果源代码中声明了包,必须使用类的完整限定名来运行类。如果源代码文件中首行定义了package,如package com.stopTalking.test,则在运行时需要指定...

    让EditPlus支持javac,java命令.pdf

    《让EditPlus支持javac,java命令》 对于初学者而言,使用编辑器直接运行Java程序无疑极大地简化了开发流程,免去了在命令行反复切换的繁琐步骤。EditPlus作为一款功能强大的文本编辑器,通过配置可以实现对Java编译...

    javac命令的使用(含有包名)

    这个简单的例子展示了如何在包含包名的情况下使用`javac`和`java`命令。在实际开发中,我们通常会使用构建工具如Maven或Gradle来自动化这些过程,它们会处理类路径设置和编译任务,使得开发更加便捷。 在压缩包文件...

    让EditPlus支持javac,java命令[归纳].pdf

    《EditPlus支持javac,java命令的配置与使用详解》 在软件开发过程中,一个高效且功能丰富的文本编辑器能够极大地提升开发效率。EditPlus作为一款功能强大的文本编辑器,深受程序员喜爱。本文将详细介绍如何配置...

    javac命令以及appletviewer命令使用

    在Java编程过程中,我们通常会使用到javac命令来编译Java源代码。对于初学者或者习惯于使用集成开发环境(IDE)的人来说,了解如何手动使用这些命令非常有必要。 **1. javac命令基本介绍** javac是Java编译器,...

    java能执行,javac不能执行的原因

    当遇到“java能执行,javac不能执行”的情况时,通常意味着系统能够找到并运行Java解释器(即java命令),但无法定位到javac编译器。这背后可能有以下几种原因: 1. **PATH环境变量配置不全**:在Windows操作系统中...

    JAVA和JAVAC 命令详细介绍

    文档将详细介绍javac和java命令的使用方法,包括-classpath和-sourcepath等参数的用法,以及它们在不同操作系统中的适应性和差异性。 在Java开发中,javac是Java的编译器,它将Java源代码编译成字节码文件(.class...

    Dos环境下使用javac编译与java执行多个包下的.java文件

    在DOS环境下,编译Java源文件需要使用`javac`命令。假设我们的`src`目录下有如下结构: ``` src |-- com | `-- example | `-- MyProgram.java ``` 其中`MyProgram.java`是一个位于包`com.example`下的类。编译这个...

    eclipse 中的javac命令与java命令

    本文将深入探讨Eclipse中的`javac`命令和`java`命令,以及它们在Eclipse工作流程中的作用。 一、Eclipse的`javac`命令 `javac`是Java编译器的命令行工具,用于将源代码(`.java`文件)编译成可执行的字节码(`....

    Java零基础 - 使用javac编译Java程序.md

    本文将详细介绍如何使用`javac`命令来编译Java程序,并通过具体的示例来帮助读者更好地理解和实践。 #### 1. 编写示例源码 首先,我们需要编写一段简单的Java程序。这段程序将输出经典的“Hello, World!”信息。...

    关于java的常用dos命令

    示例命令`javac-d.filename.java`,其中`-d`选项指定了编译后的.class文件存放目录。如果源代码位于特定包内,如`hello.java`中的`jiang.xu`包,编译后会在相应目录结构下生成`.class`文件。 - **java**:Java解释器...

    Java零基础 - 使用java命令运行Java程序.md

    ### Java零基础 - 使用java命令运行Java程序 #### 编写示例源码 为了能够更好地理解如何使用`java`命令来运行Java程序,我们首先需要编写一段Java源代码。这里我们将创建一个非常简单的程序——“Hello, World!”...

    JAVA命令大全[参考].pdf

    Java命令大全涵盖了几个重要的工具,它们是Java开发者日常工作中不可或缺的部分。这些工具包括`java.exe`、`javac.exe`、`javaw.exe`、`javah`和`javap`,它们各自承担着不同的任务。 1. `java.exe`: 这是运行Java...

    JAVA命令大全.pdf

    本文将从给定文件的标题和部分内容中提取出与Java命令相关的知识点。 首先,Java的可执行文件通常位于Java开发工具包(JDK)的bin目录中。这个目录下包含了多个重要的命令行工具,其中一些我们可以在给定文件的部分...

    java中常用命令的详解以及包与目录详解

    总的来说,理解和熟练使用`javac`和`java`命令是Java开发的基础。它们允许开发者在命令行环境中编译和运行Java程序,而无需集成开发环境(IDE)。同时,了解如何处理包和类路径对于管理大型项目尤其关键,因为这有助...

Global site tag (gtag.js) - Google Analytics