在Eclipse等IDE里编写的java类在包中,因此,由于包的影响,在命令行窗口里运行用记事本编写的不带包的java程序与用IDE编写的带包的java程序的操作有所不同,具体如下:
1. 在命令行窗口运行用记事本编写的不带包的java程序:
Test4_2_1.java 是用记事本编写的不带包的java程序,功能为打印当月的日历。
import java.time.*;
public class Test4_2_1 {
public static void main(String[] args)
{
//获取LocateDate当前日期实例
LocalDate date = LocalDate.now();
//获取月
int month = date.getMonthValue();
//获取日
int today = date.getDayOfMonth();
//重置date为当月第一天
date = date.minusDays(today - 1);
//获取date所在星期
DayOfWeek weekday = date.getDayOfWeek();
int weekvalue = weekday.getValue();
//打印表头
System.out.println("Mon Tue Wed Thu Fri Sat Sun");
//打印日历起始空格
for(int i = 1; i < weekvalue; i++)
System.out.print(" ");
while(date.getMonthValue() == month)
{
//打印date的日号
System.out.printf("%3d", date.getDayOfMonth());
//如果date为当前日子则标记“*”
if(date.getDayOfMonth() == today)
System.out.print("*");
else
System.out.print(" ");
//date++
date = date.plusDays(1);
//如果一周结束打印换行符
if(date.getDayOfWeek().getValue() == 1)
System.out.println();
}
if(date.getDayOfWeek().getValue() != 1)
System.out.println();
}
}
命令行里编译运行,结果如下
注意:编译时需加上 -encoding UTF-8 ,否则会报错:编码GBK的不可映射字符。
参考自:cmd命令行下javac 编译 无法识别中文_u010448530的博客-CSDN博客_javac 中文
2. 在命令行窗口里运行用IDE编写的带包的java程序:
Test4_2_2.java 是用Eclipse编写的java程序,它在包learnTest下,主要代码同上,只增加了包语句 package learnTest;
命令行里编译运行,结果如下
可以看到,编译时以从基目录(第一级包)到java文件的整个路径为名进行编译;运行时将编译名字中的 ' / '换为 点' . ' 并去掉 .java后缀
参考自:《java核心技术 卷Ⅰ (原书第11版)》