javac和java命令相关的问题
之前对于编译和运行是一知半解,今天就好好的记录一下,弄明白,希望能帮到大家。
最近用cmd命令行在编译和运行时,遇到一些问题,和配置没有关系,没弄明白命令的含义。
-
先看没有包的情况:
-
写一个HelloWorld程序测试,注释就不用管了哦
public class Hello{ public static void main(String[] args) { //女人有脾气? System.out.println("hello world!!"); }` }
-
在当前目录打开cmd,输入编译命令:javac 类名.java,执行完成后会在当前目录生成一个class后缀的文件(计算机最终要运行的是这个.class文件(字节码文件)。
.java 文件是源码 , 经过编译器编辑之后 , 编译成 .class 文件 , .class文件是字节码文件 , 在java项目运行时 , 所有.class都依赖于java运行环境 , 也就是 jre , 在jre中 , .class文件被解析成机器可识别的语言 , 然后得到执行。
-
运行执行命令:java 类名,这时要注意大小写,笔者就是因为大小写试了半天,难受啊!!!!
-
至此无包的情况运行完成
-
-
有包的情况:
-
来吧,先加个包名,别问为什么,你自己随便加
package com.xiaoxiao.www.base; public class Hello{ public static void main(String[] args) { //女人有脾气? System.out.println("hello world!!"); } }
-
用javac来编译,如果直接进行编译运行会报错,如下
-
笔者测试了两种方式编译
-
方法一:找到包的上一层目录,当然,你需要写把包中涉及到的文件夹一层层的创建出来,在那个地方打开cmd命令
解释:javac要用\来写路径,这个就是他的语法,没有为什么,而且javac后面的那个java文件是不区分大小写的。
java用.来划分路径,后面的类名严格区分大小写!
这个蓝色的cmd命令行和黑色的是一样的效果,不要纠结。
-
方法二:这个不需要创建文件夹,通过javac -d . 类名.java来编译,-d代表创建目录,.表示在当前文件夹创建,编译后在当前目录下就会创建目录,运行就可以了
-
-
本文来自博客园,作者:一只快乐的小67,转载请注明原文链接:https://www.cnblogs.com/sp520/p/15172864.html