易截截图软件、单文件、免安装、纯绿色、仅160KB

说一下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
平台已无处不在,Java EE、Java SE、Java ME 和 Java Card,Java
的发展为无数程序员提供了工作机会,都是“Java”,然而除了基本的 Java
语法大都一致外,程序员必须基于不同的平台有不同的考虑,学习不同平台的特点:
不同平台的环境
Java EE 所运行的硬件服务器、操作系统,Java SE 所在 PC 机 ......

文本聚类算法Java实现

蛙蛙推荐:蛙蛙教你文本聚类
摘要:文本聚类是搜索引擎和语义web的基本技术,这次本蛙和大家一起学习一下简单的文本聚类算法,可能不能直接用于实际应用中,但对于想学搜索技术的初学者还是有一定入门作用的。这里会用到TF/IDF权重,用余弦夹角计算文本相似度,用方差计算两个数据间欧式距离,用k-means进行数据聚类等数学 ......

Java Mail 发送邮件

package com.eastpro.batch.biz;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import java.security.spec.X509EncodedKeySpec;
public class SendMail {
  private MimeMessage mimeMsg; //MIME mail object
  private Session session;
  ......

Java Mail send email

package com.eastpro.batch.biz;
//import javax.activation.*;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.internet.*;
import javax.mail.*;
import java.io.UnsupportedEncodingException;
import java.util.*;
/**
 * Insert the type's descript ......

java为什么需要持久化?

对象只能存在于内存中 ,而内存中不能永久保存数据。如果要永久保存对象的状态,需要进行对象的持久化,即把对象存储到专门的数据存储库中 目前,关系数据库冉冉是使用最广泛的数据存储库。关系数据库中存放的是关系数据,它是非面向对象的。
持久化是将Java虚拟机对象持久保存,而不是将数据库映射为对象,通常数据的存储 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号