java 命令行 编译 运行程序

学习java使用IDE前最好先用用命令行的javac、java来跑一跑简单的程序,这样能够熟悉一下包管理对.class文件路径的影响。

我们先写一段简单的代码:

package com.csdn.lkasdolka;

public class test_1{
    public static void main(String[] args){
	for(int i = 0; i < 10; ++i ){
	    System.out.println(i);
	}
    }
}

写好后保存为test_1.java,windows环境下WIN+R打开命令行。cd到test_1.java文件文件夹下。

用命令

javac test_1.java 

编译文件。假设之前java环境都配置好了的话,这时候在命令行中输入dir我们能够看到文件夹下多了一个test_1.class文件:

2014/10/06  16:23    <DIR>          .
2014/10/06  16:23    <DIR>          ..
2014/10/06  16:23               454 test_1.class
2014/10/06  16:09               173 test_1.java
               2 个文件            627 字节
               2 个文件夹 13,711,450,112 可用字节

接下来用

java test_1

尝试执行字节码文件,却出现了异常。

Exception in thread "main" java.lang.NoClassDefFoundError: test_1 (wrong name: c
n/bupt/d10_1006_1/test_1)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14
2)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

这是由于我们在代码开头的地方建立了一个

com.csdn.lkasdolka

的包。

包是java其中用于管理命名空间的一种机制。

我们须要在当前文件夹中手动建立com\csdn\lkasdolka,然后把test_1.class剪切到com\csdn\lkasdolka\文件夹下。

这时候再cd回最初的工作文件夹(com的父文件夹),在命令行输入

java com.csdn.lkasdolka.test_1

或者

java com/csdn/lkasdolka/test_1

应该就能看到正确的输出结果了:

C:\Users\acer\Desktop\technology\test_java>java com.csdn.lkasdolka.test_1
0
1
2
3
4
5
6
7
8
9

C:\Users\acer\Desktop\technology\test_java>java com/csdn/lkasdolka/test_1
0
1
2
3
4
5
6
7
8
9

总结:

1.javac用来编译.java文件生成.class文件(字节码文件),java用来运行.class文件,运行的时候去掉.class后缀。

2.假设在源文件里定义了包(package),须要将.class文件放到包定义的相应文件夹下,否则运行java 命令的时候会出 NoClassDefFoundError的异常

The End~

(如有错误,欢迎指正)

时间: 2024-10-10 04:54:52

java 命令行 编译 运行程序的相关文章

javac java 命令行编译运行程序

参考自:http://blog.csdn.net/xxyyww/article/details/5784803 前言: 在命令行运行JAVA的时候,要做的事情就不是点一下鼠标就可以了.如果再用到第三方JAR包,命令就更长了.一个比较好的方法就是使用ant,不过我发现一个问题,在命令行中使用ant的时候,它的输入和eclipse的console一样蛋疼.比如: Scanner in = new Scanner(System.in); System.out.println("请输入一个整数:&quo

Java 命令行编译项目

(初学者的一些总结-高手们勿喷哈-) 原因: 以前一直用Eclispe编程环境运行Java.非常舒服,就像用傻瓜相机照相一般. 有看见许多高手都是直接用vim编辑文件,命令行编译运行,觉得那样不是反而更繁琐? 转折点是在前几天本科毕设题目选定之后.毕设题是一个基于java 字节码的类关系动态分析.需要对.class文件中字节码进行更改(具体的说是在许多指令后加入做标记的新指令,以实现动态跟踪的目的). 我发现,eclipse根本无法如此灵活,他无法直接装载运行一个我修改过的.class文件.它是

如何用命令行编译c++程序

作为程序员,如果仅仅只懂得如何在IDE上拖控件写程序,而不知道如何直接通过编译器编译程序的话.虽然说也没啥大不了的,但是如果掌握了手动编译的技能,那肯定会是一种炫技般的存在.从客观的角度来讲,一方面,这种技能帮你在同事或同学面前体现在自己的编程方面的“骨灰级”地位.另一方面,这种脱离了IDE的编译过程在你刷题的时候能帮你摆脱很多IDE上的恼人事故. 实际上,网上一找,确实有不少这个方面的文章,不过好多都是基于32位的win7或者win8的系统的,很不巧的是,本人的电脑是64位的win10系统.在

java命令行编译和运行引用jar包的文件

经常遇到需要添加第三方jar文件的情况.在命令行状态下要加载外部的jar文件非常麻烦,很不好搞,在网上折腾了很久终于搞定了,在这里做个笔记: 1.编译:javac -Djava.ext.dirs=./lib Test.java 2.运行:java -Djava.ext.dirs=./lib Test ./lib是指存放第三方jar文件的目录.也可以写成绝对路径:/**/lib (试过了可以!)Test.java指包含main函数的类.

java 命令行 编译 执行程序

学习java使用IDE前最好先用用命令行的javac.java来跑一跑简单的程序,这样可以熟悉一下包管理对.class文件路径的影响. 我们先写一段简单的代码: package com.csdn.lkasdolka; public class test_1{ public static void main(String[] args){ for(int i = 0; i < 10; ++i ){ System.out.println(i); } } } 写好后保存为test_1.java,win

Java 命令号编译运行时添加第三方库

虽然现在各种集成开发环境可以很方便的利用 BuildPath 的方式添加第三方的外部库, 但是对于初学者来说,掌握命令行javac 编译 java 运行的方式还是很有必要的.学习 classpath 选项的使用方法可以在不使用集成开发环境的情况先手动添加第三方的外部库. 工具准备: 文本编辑器 Coda2, 用作演示的 MySQL 驱动包 mysql-connector-java-5.1.36-bin.jar. 命令介绍: classpath 的使用方法: 命令形式: javac -classp

Maven 手动添加第三方依赖包及编译打包和java命令行编译JAVA文件并使用jar命令打包

一,实例:新建了一个Maven项目,在eclipse中通过 build path –> configure path-.将依赖包添加到工程中后,eclipse不报错了.但是用Maven命令 mvn clean compile 时出错如下: 原因是在eclipse中添加了 exteneral jar后,还需要在maven中再添加依赖的jar包 Maven手动添加第三方依赖包有两种方法: 参考:maven 添加第三方依赖              maven中把依赖的JAR包一起打包 第一种方法是使

命令行编译VC程序

命令行下编译C++代码,需要设置编译环境,分别是:头文件,库文件,以及编译器cl.exe以及连接器link.exe的位置. 1)简单方式,打开VS05,点击Tools,选择Visual Studio 2005 Command Prompt,这个时候就已经配置好编译的环境. 测试:尝试输入cl 或者link(exe后缀可省略),如果能够显示cl的命令参数表明设置成功,可以开始编译.失败提示:'cl'不是内部或外部命令,也不是可运行的程序或批处理文件. 2)找到vcvarsall.bat批处理,然后

命令行编译C++程序

    使用命令行来编译C++程序,我们可以有两种方法:     方法一:     1. 依次打开开始程序->Visual Studio 2010 –>Visual Studio tools –>Visual Studio命令提示,打开后,它会自动设置相关环境变量,我们就可以使用cl.exe来编译单个C/C++程序.      如下图所示:          在dos下,使用cd 命令,切换到目标文件所在目录进行编译即可.    方法二:    1. 打开普通cmd窗口      1.1