说一下Java里面的路径问题,CLASSPATH和SOURCEPATH
java的路径让许多人,特别是初学者感到迷惑,我这里再解释一下。我们分2个阶段,1是编译阶段,2是运行阶段。
一、编译阶段
这个时候,我们要提供给编译器的有2个路径参数,第一个是源代码在哪里?也就是 sourcepath,第二个就是依赖的类在哪里?也就是 classpath
我们看一个例子
d:\temp\TestCP\d1\p1\Class1.java
view plaincopy to clipboardprint?
package p1;
public class Class1 {
public void show(){
System.out.println("Class1");
}
}
package p1;
public class Class1 {
public void show(){
System.out.println("Class1");
}
}
d:\temp\TestCP\d2\p2\Class2.java
view plaincopy to clipboardprint?
package p2;
import p1.Class1;
public class Class2 {
public static void main(String[] args){
Class1 c1 = new Class1();
c1.show();
}
}
package p2;
import p1.Class1;
public class Class2 {
public static void main(String[] args){
Class1 c1 = new Class1();
c1.show();
}
}
编译的时候,我们先在 d:\temp\testCP\d1 编译Class1
D:\temp\testCP\d1>javac p1\Class1.java
编译成功
然后我们在 d:\temp\testCP\d2 下编译 Class2。有2个方法进行编译:
第一:指定源文件 sourcepath
D:\temp\testCP\d2>javac -sourcepath .;../d1 p2\Class2.java
第二:指定classpath
D:\temp\testCP\d2>javac -sourcepath . -cp ../d1 p2\Class2.java
两个方法都能达到我们需要的效果。也就是说,在路径里,系统会在其下面根据package自动寻找源文件或者class文件的。
另一个情况,如果我们需要某个类库的支持,比如jar文件,那么我们就不能只包含路径就行了,而是应该包含整个路径和文件名,比如
D:\temp\testCP\d2>javac -sourcepath . -cp ../d1;d:/lib/spring.jar p2\Class2.java
第二、在运行时
我们需要指定其他的class在哪里,以及我们需要的类库在哪里,所以运行命令应该是
D:\
相关文档:
JAVA文件读写必须要注意编码问题
java的文件写
直接使用FileWriter即可,第二个参数为追加写入,默认是覆盖写。写完必须close才会保存写好的内容。
默认情况如果没有会新建一个文件
FileWriter fw = null;
try {
fw = new FileWriter("/data/updatetime.dat", true); // true追加写入
fw.append ......
对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。内容均来自于CSDN的经典老贴。
问题一:我声明了什么!
String s = "Hello world!";
许多人都做过这样的事情,但是,我们到底声 ......
定义:
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。
还有, singleton能够被状态化;
这样,多个单态类在一起就可以作为一个状态仓库一样向外提供服务,比如,你要论坛中的帖子计数器,每次浏览一次需要计数,单态类能否 ......
Cookie在Web应用程序中被广泛采用,维护浏览器和服务器之间的状态。遗憾的是这一特性在Java
ME平台中并没有得到支持。因此,要想维持客户端和服务器端的状态则必须使用URL重写的方式。URL重写操作起来比较麻烦,所以研究一下cookie的
原理并在Java ME平台上实现cookie是不错的尝试。
首先,我们来看一下cookie的原理。当 ......