好长时间都没有写java程序了,连最基本的编译和运行都忘记了。特记录如下。
1、当Java没有打包的时候,程序的编译和运行都在源文件所在的目录下进行,保证不出错。程序的编译也可以在别的目录,但是源文件的路径要写对。
当源文件在桌面的时候:
java: liuy_ang$ javac ~/desktop/Hello.java#程序编译,此时需要写对源文件的路径
java: liuy_ang$ java ~/desktop/Hello#程序执行,出错,原因是没有在源文件所在的目录,导致无法找到类
错误: 找不到或无法加载主类 .Users.liuy_ang.desktop.Hello
java: liuy_ang$ cd ~/desktop/ #将目录移到源文件所在的文件夹下
desktop: liuy_ang$ java Hello #运行文件
Hello World! #成功运行
desktop: liuy_ang$
2、当Java打包的时候,程序的编译和运行略有不同。
编译,可以在任意目录下进行,都是文件的路径要写对,即源文件所在目录要写对,才能编译。
运行,必须在包名目录的上一级目录中,而且必须写明报名和类名,即”packageName.ClassName”
当源文件打包为package vpn
时,文件在桌面的vpn文件下,
java: liuy_ang$ javac ~/desktop/vpn/Hello.java #编译正常
java: liuy_ang$ java ~/desktop/vpn/Hello.java #运行出错
错误: 找不到或无法加载主类 .Users.liuy_ang.desktop.vpn.Hello.java
java: liuy_ang$ cd ~/desktop/ #将目录移动到桌面
desktop: liuy_ang$ java vpn.Hello #运行程序,vpn是包名,Hello是类名
Hello World!