E:\Study\Practise\com文件夹存放的即bruceeckel自定义的类,我把要测试的DirList.java文件放E:\Study\Practise\com\bruceeckel\util下,编译结果如下:E:\Study\Practise\com\bruceeckel\util>javac DirList.java
DirList.java:4: 软件包 com.bruceeckel.util 不存在
import com.bruceeckel.util.*;
^
DirList.java:13: 无法访问 AlphabeticComparator
错误的类文件: .\AlphabeticComparator.class
类文件包含错误的类: com.bruceeckel.util.AlphabeticComparator
请删除该文件或确保该文件位于正确的类路径子目录中。
Arrays.sort(list, new AlphabeticComparator());
^
2 错误但我把要测试的java文件放在E:\Study\Practise\com下,就能顺利通过,结果也正确,这是为什么呢?
以下为DirList.java文件:
import java.io.*;
import java.util.*;
import java.util.regex.*;
import com.bruceeckel.util.*;
public class DirList {
public static void main(String[] args) {
File path = new File(".");
String[] list;
if(args.length == 0)
list = path.list();
else
list = path.list(new DirFilter(args[0]));
Arrays.sort(list, new AlphabeticComparator());
for(int i = 0; i < list.length; i++)
System.out.println(list[i]);
}
}
class DirFilter implements FilenameFilter {
private Pattern pattern;
public DirFilter(String regex) {
pattern = Pattern.compile(regex);
}
public boolean accept(File dir, String name) {
// Strip path information, search for regex:
return pattern.matcher(
new File(name).getName()).matches();
}
}
DirList.java:4: 软件包 com.bruceeckel.util 不存在
import com.bruceeckel.util.*;
^
DirList.java:13: 无法访问 AlphabeticComparator
错误的类文件: .\AlphabeticComparator.class
类文件包含错误的类: com.bruceeckel.util.AlphabeticComparator
请删除该文件或确保该文件位于正确的类路径子目录中。
Arrays.sort(list, new AlphabeticComparator());
^
2 错误但我把要测试的java文件放在E:\Study\Practise\com下,就能顺利通过,结果也正确,这是为什么呢?
以下为DirList.java文件:
import java.io.*;
import java.util.*;
import java.util.regex.*;
import com.bruceeckel.util.*;
public class DirList {
public static void main(String[] args) {
File path = new File(".");
String[] list;
if(args.length == 0)
list = path.list();
else
list = path.list(new DirFilter(args[0]));
Arrays.sort(list, new AlphabeticComparator());
for(int i = 0; i < list.length; i++)
System.out.println(list[i]);
}
}
class DirFilter implements FilenameFilter {
private Pattern pattern;
public DirFilter(String regex) {
pattern = Pattern.compile(regex);
}
public boolean accept(File dir, String name) {
// Strip path information, search for regex:
return pattern.matcher(
new File(name).getName()).matches();
}
}
按照c:\com\bruceeckel\util\做文件及,然后把他的文件放进去
把你的.java文件就放在c:盘下
javac *.java
你要记着,javac 编辑时,他不会去上一级找路径的,也就是说,可以往下,不会往上呀,因上一级可以会很我的选项呀!
问题1:
我依次把
E:\Study\Practise\com\bruceeckel\util;
E:\Study\Practise\com
E:\Study\Practise\
放进classpath然后在E:\Study\Practise\com\bruceeckel\util底下编译还是通不过
问题2:
网上classpath设置方法都不一样,有的说把C:\Program Files\Java\jdk1.5.0_16\lib目录下的dt.jar和tools.jar设为classpath,有的却没要dt.jar!到底是怎么着?问题3:
我想把com包打成jar包,放在C:\Program Files\Java\jdk1.5.0_16\lib下加进classpath怎么打啊?非常感谢!!
进入 E:\Study\Practise\后,用javac com.bruceeckel.util.DirList.java
生成com.bruceeckel.util.DirList.class文件
最后java com.bruceeckel.util.DirList看结果
这样一改没有什么问题了吧!!!
你路径不对
E:\Study\Practise>javac com.bruceeckel.util.DirList.java
错误:无法读取: com.bruceeckel.util.DirList.java
1 错误
问题1:
我依次把
E:\Study\Practise\com\bruceeckel\util;
E:\Study\Practise\com
E:\Study\Practise\
放进classpath然后在E:\Study\Practise\com\bruceeckel\util底下编译还是通不过
问题2:
网上classpath设置方法都不一样,有的说把C:\Program Files\Java\jdk1.5.0_16\lib目录下的dt.jar和tools.jar设为classpath,有的却没要dt.jar!到底是怎么着?
问题3:
我想把com包打成jar包,放在C:\Program Files\Java\jdk1.5.0_16\lib下加进classpath怎么打啊
这样系统自己找工具包,省去很多麻烦!!!!
同时你把进入 E:\Study\Practise\后,用javac com.bruceeckel.util.DirList.java
生成com.bruceeckel.util.DirList.class文件
最后java com.bruceeckel.util.DirList看结果 这样应该没问题了,
有问题你再说!!!
E:\Study\Practise>javac com.bruceeckel.util.DirList.java
错误:无法读取: com.bruceeckel.util.DirList.java
1 错误
编译就无法通过,我解决的办法是把DirList.java放在 E:\Study\Practise\下,就可以顺利编译了,可是我又产生了两个问题:
问题1:
网上classpath设置方法都不一样,有的说把C:\Program Files\Java\jdk1.5.0_16\lib目录下的dt.jar和tools.jar设为classpath,有的却没要dt.jar!到底是怎么着?
问题2:
我想把com包打成jar包,放在C:\Program Files\Java\jdk1.5.0_16\lib下加进classpath怎么打啊?
其实非常谢谢你,你别急,这么漂亮的姑娘生气可不好看!呵呵
或者干脆把他们放在一个包里就不会有问题了。
主要原因是因为在查找路径的时候是当前路径,然后是系统路径,如果都没有就会报错了。