Java程序Console编译执行

来源:互联网 发布:r数据分析师 编辑:程序博客网 时间:2024/06/01 19:25

还是IDE习惯了,以至于忘记了如何手动构建编译Java程序。今天写一个Flag作为警醒,以后IDE可以用,也会经常用,但是也不能忘记其背后的核心原理。

  • 默认包路径Java文件的编译执行:
public class Test{      public static void main(String[] args){              System.out.println("Hello World");      } }

编译执行:
% javac Test.java
% java Test

  • 带有引用关系的源码编译执行:
public class Demo{    public static void out(){        System.out.println("Hello World");    }}public class Test{    public static void main(String[] args){        Demo.out();    }}

编译执行:
% javac Test.java Demo.java
% java Test

  • 带有包路径的源码编译执行
package com.util.api;public class Test{    public static void main(String[] args){        System.out.println("Hello World");    }}

编译执行:
% javac -d . Test.java
% java com.util.api.Test
这里需要十分注意 带有包路径javac时,需要添加参数 -d.,执行时需要添加包路径

  • 带有输入参数源码的编译执行
public class BinaryDump {    public static void main(String[] args){        int BITS_PER_LINE = 16;        String fileName = "abra.txt";        if(args.length == 2){            BITS_PER_LINE = Integer.parseInt(args[0]);            fileName = args[0];        }        int count;        for(count = 0; !BinaryStdIn.isEmpty(); count ++){            if(BITS_PER_LINE == 0){ BinaryStdIn.readBoolean(); continue;}            else if(count != 0 && count % BITS_PER_LINE == 0) StdOut.println();            if(BinaryStdIn.readBoolean()) StdOut.print(1);            else                          StdOut.print(0);        }        if(BITS_PER_LINE != 0) StdOut.println();        StdOut.println(count + " bits");    }}

编译执行:
% javac BinaryDump.java BinaryStdIn.java BinaryStdOut.java StdOut.java
% java BinaryDump 16 < file.txt
其中初始输入参数为 16, 其中 file.txt表示读入数据从控制台,重定向到file.txt文件