说一下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:\
相关文档:
1.设置Cookie
Cookie cookie = new Cookie("key", "value");
cookie.setMaxAge(60);
设置60秒生存期,如果设置为负值的话,则为浏览器进程Cookie(内存中保存),关闭浏览器就失效。
cookie.setPath("/test/test2");
设置Cookie路径,不设置的话为当前路径(对于Servlet来说为request. ......
A:不带输出参数的
---------------不带输出参数的----------------------------------
create procedure getsum
@n int =0<--此处为参数-->
as
declare @sum int<--定义变量-->
declare @i int
set @sum=0
set @i=0
while @i<=@n begin
set @sum=@sum+@i
set @i=@i+1
end
print ......
Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引
用的区别,本文会试图澄清这一概念。并且由于Java不能通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对
象。本文会让你了解什么是影子clone与深度clone,认识它们的区别、优点及缺点。 ......
这个程序非常的简单,主要是用来截取文本中想要的内容,或者删除部分内容。
////////////////////////////////////////////////////////////////////////////
执行SQL语句:
CREATE TABLE ***(
ssf_guid VARCHAR(32)   ......
1.声明数组引用变量时不能指定数组的长度。如:int x[1];这句话非法。
2.数组对象的创建,例如:
int [] scores = new int[100];
首先在堆中分配内存空间,上述的就是400个字节,然后就给其赋默认值,各个数据类型的默认值不同,int为0.
3.返回数组对象的引用:
int [] x =new int [10]; <=> int size = 10; i ......