异常信息:
C:\java>javac Hello.java
C:\java>java Hello
Exception in thread "main" java.lang.NoClassDefFoundError: Hello
Caused by: java.lang.ClassNotFoundException: Hello
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
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)
C:\java>
原因:
当前目录并未在CLASSPATH里面
解决方案:
使用
C:\java>java -cp . Hello
就可以了。其中的 -cp . 是java的标准参数,等于 -classpath . 也就是把当前目录加入CLASSPATH
我们看一下java的命令行参数,其中
-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
A ; separated list of directories, JAR archives,
and ZIP archives to search for class files.
第二种情况,缺少某个jar里面的类,比如你的程序用到了Abc.jar 则在命令行可以这样运行
c:\java>java -cp.;c:\lib\Abc.jar Hello
如果Abc.jar还依赖别的类库,就继续在后面书写完整的jar路径就行了。
在Windows下面用分号分隔,在Linux下面用冒号分割。
分享到:
相关推荐
NULL 博文链接:https://xjg396.iteye.com/blog/1973026
在 JDK 9 中,javac 进行了一些改进,包括支持以目录作为参数进行编译,这使得批量处理大量源文件变得更加方便。 在 JDK 8 及以前的版本中,如果想要编译一个目录下的所有源文件,你需要列出每一个 .java 文件。但...
以下是对`javac`源代码及Java编译步骤的详细解析。 1. **词法分析**:编译的第一步是读取源代码文件,并将其分解为一个个最小的有意义单元——词法单元或标记。这些标记包括关键字、标识符、操作符、常量和分隔符等...
在 Java 开发中,经常会遇到一个问题,即 javac 编译成功后,用 java 运行 Class 文件却出现“找不到或无法加载主类”的错误信息。这种问题看似很复杂,但实际上解决起来非常简单。下面我们将详细讲解该问题的解决...
### Java零基础 - 使用javac编译Java程序 在计算机编程领域中,Java是一种广泛使用的高级编程语言,因其跨平台性、安全性以及丰富的类库支持而受到开发者的青睐。对于初学者而言,掌握如何编译Java程序是入门的第一...
在DOS环境下使用`javac`编译与`java`执行多个包下的`.java`文件是一项常见的Java开发任务。这通常涉及到对项目结构的理解、命令行操作以及掌握Java的编译和运行流程。下面我们将详细讲解这个过程。 首先,我们需要...
`JAVAC`,全称Java Compiler,是Java的标准编译器,它主要用于静态编译Java源代码。但在本文中,我们将探讨如何在运行时使用Java的API进行动态编译,这是Java世界中的一个强大特性。 动态编译在Java中主要通过`...
java编译的javac.jar
javac 在编译过程中会检测语法错误、类型不匹配等问题,并生成错误和警告信息。这些信息通过 `com.sun.tools.javac.main.DiagnosticListener` 接口传递给用户。 5. **注解处理**: Java 提供了注解(Annotation)...
深入理解javac的源代码对于Java程序员来说,不仅能帮助理解编译过程,还能提升编程技能和优化代码的能力。在本文中,我们将探讨javac的工作原理、关键组件以及其在Java开发中的重要性。 一、javac的基本工作流程 1...
在深入理解javac源码的过程中,我们可以更好地了解Java语言的编译原理,以及Java平台如何实现跨平台的执行。 源码分析: 1. **词法分析**:javac首先进行词法分析,将源代码分割成一个个的词法单元(如标识符、...
JDK不仅包含运行Java程序所需的Java运行时环境(JRE),还包括用于开发和编译Java应用的工具,如`javac`。你可以访问Oracle官方网站下载最新版本的JDK,并按照安装向导的指示进行安装。 其次,`javac`命令的执行...
javac 命令用于编译 Java 程序源代码,生成字节码文件,而 java 命令用于执行已经编译的字节码文件。 javac 命令的语法为:javac [option] source 其中,option 是可选项,可以包括以下选项: * -classpath <路径...
- 使用Eclipse的调试功能,可以设置断点、单步执行,观察javac编译过程中的内部状态。 5. **学习研究**: - 通过阅读源码,了解javac如何处理语法错误、类型检查以及优化过程。 - 分析特定功能的实现,如注解...
编译原理课程设计,关于javac源代码的分析。对于词法分析,语法分析,有详细的解释。
5. **错误和警告处理**:javac在编译过程中会检测并报告语法错误、类型错误以及其他问题,这些错误信息的处理是编译过程中的重要部分。 6. **优化**:除了基本的编译任务,javac还可能包含一些优化策略,如 dead ...
在大型项目中,为了自动化编译过程,开发者通常会使用Ant结合Javac。 首先,让我们详细了解一下Ant。Ant是一个跨平台的构建工具,它的主要任务是读取名为build.xml的XML文件,该文件定义了构建过程中的各种任务,如...
4. 当设置jocky的enable属性为true时,此时,Ant脚本中的javac编译命令,便会被自动替换成Jocky编译器;当设置enable属性为false时,javac编译命令将恢复成正常设置 二、jocky for eclipse 1. 将org.apusic.jocky_...