在linux系统中编译、执行java程序
在linux系统中,/shiji这个目录下写一个最简单的遍历“/home”目录下文件夹的小程序:
importjava.io.*;
publicclassgetfile{
publicstaticvoidmain(String[]args){
Filefile=newFile("/home");
System.out.println(file.getName());
File[]files=file.listFiles();
for(inti=0;i<files.length;i++){
System.out.println(files[i].getAbsolutePath());
}
}
}
这里,没有指明包结构,如果在代码中有的话,则要在/shiji/这个目录下,建立对应的目录结构,例:/shiji/com/bxf/linuxTest/
然后,找到java-jdk的安装目录:
我的是:/opt/jdk
进入bin目录下执行:
./javac/baoxiaofei/getfile.java
因为代码简单,一次编译成功!
然后,进入到代码对应的目录:/shiji下执行:
javagetfile
得到结果如下:
home
/home/....
/home/....
/home/....
/home/....
处于公司变态的规定,不敢把目录详细列出来!
另外,代码很简单,在eclipse中,按照别人的思路,写了一个(也是很简单)递归遍历文件的代码,贴上来,免得自己忘了:
packagecom.baoxiaofei.FileTest;
importjava.io.File;
importjava.util.LinkedList;
/**
*遍历文件夹
*非递归方式
**/
publicclasstraverseFolder{
privatestaticfinallongZERO=0L;
staticintnum_file=0;
staticintnum_folder=0;
StringBuildersb=newStringBuilder();
publicvoidtraverseWay(Filedir){
File[]files=dir.listFiles();
LinkedList<File>tmp_list=newLinkedList<File>();
if(files.length==ZERO){
System.out.println("theFolderisnull!");
}
for(inti=0;i<files.length;i++){
if(files[i].isDirectory()){
tmp_list.add(files[i]);
num_folder++;
}else{
sb.append(files[i].getName());
sb.append("\n\r");
System.out.println("----thefile:"+files[i].getAbsolutePath()+
"'ssizeis:"+files[i].getTotalSpace());
num_file++;
}
}
Filetmp_file;
while(!tmp_list.isEmpty()){
tmp_file=(File)tmp_list.removeFirst();
if(tmp_file.isDirectory()){
System.out.println("starttotraverse:"+tmp_file);
files=tmp_file.listFiles();
for(intj=0;j<files.length;j++){
System.out.println();
}
}
}
}
publicstaticvoidmain(String[]args){
/*这里就不具体写了*/
}
}