美文网首页
CMD命令行编译运行单个java文件

CMD命令行编译运行单个java文件

作者: 回忆之秋 | 来源:发表于2017-05-15 17:04 被阅读0次

    java文件中不含包名

    这种情况比较简单

    public class NoPackage{
        public static void main(String[] args){
            System.out.println("No package:");
            System.out.println("current direction(cmdJava)");
            System.out.println("javac NoPackage.java");
            System.out.println("java NoPackage");
        }
    }
    

    编译
    javac NoPackage.java;
    运行
    java NoPackage

    pic1.png

    注意,编译时没有.java后缀的话,会报错误: 仅当显式请求注释处理时才接受类名称 'NoPackage'
    1 个错误

    erro1.png

    注意:运行时多了.class后缀的话会报错误: 找不到或无法加载主类 NoPackage.class

    error2.png

    Java文件中含包名的话

    这种情况容易出错,我们需要建立相关文件夹模拟包路径
    我在cmdJava文件里需要新建site/yourdiary(嵌套文件夹)对应包路径,然后将java文件放在对应包路径的文件夹中
    编译:javac site/yourdiary/HasPackage.java
    运行:java site.yourdiary.HasPackage

    package site.yourdiary;
    
    public class HasPackage{
       public static void main(String[] args){
           System.out.println("has package:");
           System.out.println("current direction(cmdJava)");
           System.out.println("HasPackage.java is in cmdJava/site/yourdiary");
           System.out.println("javac site/yourdiary/HasPackage.java");
           System.out.println("java site.yourdiary.HasPackage");
       }
    }
    
    pic2.png

    注意:要把site/yourdiary像包一样对待,不要像没有包文件一样,直接编译运行,否则会出现编译成功了,但运行不成功;因为包路径对应着文件夹路径
    package site.yourdiary
    运行class文件夹时,会从当前路径出发找包路径对应的文件夹路径site/yourdiay路径加载执行里面的class文件。

    图片.png

    常见错误

    • 在编译器中写的java代码,在命令行中,编译运行有一种常见的错误 - “字符编码错误”
    字符编码错误.png

    通常我们会将编译器调整为utf-8的编码集,而系统默认是GBK,当代码文件中有中文是就会报错,所以我们在命令行中编译的时候要指定编码集 如:

    javac -encoding utf-8 site/yourdiary/demo4/HeapAlloc.java
    

    总结:现在主要都是用IDEA和Eclipse这样的IDE中编写运行java文件了,很方便,
    但是,有时需要命令行操作,我是因为编写的java文件 需要从命令行读入一段文字
    段落的终止符在CMD命令行中crtl+z能实现。

    相关文章

      网友评论

          本文标题:CMD命令行编译运行单个java文件

          本文链接:https://www.haomeiwen.com/subject/btmhxxtx.html