关于java的classpath问题
package、import
的相关问题是java中的一个不大不小的问题,但classpath问题却是java的一个著名的难题。今晚得闲研究了一下,在这里将我的研究成果跟各位
朋友分享一下。由于同包的情况很简单,所以这里就不讨论同包情况,只讨论不同包和不同路径的情况。为了能让读者更容易理解,我这里以举例的方式来说明问
题。
假设在路径E:\share下写了两个类,它们分别是Book.java和Paper.java,代码如下:
Book.java
:
package p1;
public class Book {
public static void main(String[] args) {
p2.Paper p = new
p2.Paper(); //line 5
p.helloworld();
}
}
Paper.java
:
package p2;
public class Paper {
public
void helloworld(){
System.out.println("HelloWorld");
}
}
Book类和Paper是
位于同一路径(E:\share)下的,但他们不同包
。那
么,我们应该如果运行Book呢?正确的流程如下:
1、打开cmd,进入E:\share路径下;
2、编译Paper类:javac Paper.java,
编译Book类:javac Book.java;
3、在E:\share下新建两个包p1,p2,将编译所得的两个类文件Book.class和Paper.class分别放入p1和p2中,这一步非常
关键;
4、运行Book类:java p1.book.java;
可以看到运行结果:HelloWorld。这说明已经正确运行了Book类。
回头看一下Book.java类,标记line
5那行创建了一个Paper类的对象p,但创建时稍微有一麻烦,因为Paper类要写全包名,如果包名很长的话,既不直观又麻烦。所以,java提供了
import关键字,它的作用是将其它包的类导入到当前类里。上面的Book.java可以这样写:
Book.java
:
package p1;
import p2.Paper; //line 2
public class Book {
public static void main(String[] args) {
Paper p = new Paper(); //line 5
p.helloworld();
}
}
在line 2导入Paper类,line 5创建Paper对象时就不用写全包名了。这时Book类运行的方式还跟上面的
相关文档:
List的用法
List包括List接口以及List接口的所有实现类。因为List接口实现了Collection接口,所以List接口拥有Collection接口提供的所有常用方法,又因为List是列表类型,所以List接口还提供了一些适合于自身的常用方法,如表1所示。
表1 List接口定义的常用方法及功能
从表1可以看出,List接口提供的适合于自身的 ......
在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_, ......
关于绝对路径和相对路径:
绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在Servlet中,"/"代表W ......
JAVA Socket超时浅析
套接字或插座(socket)是一种软件形式的抽象,用于表达两台机器间一个连接的“终端”。针对一个特定的连接,每台机器上都有一个“套接字”,可以想象它们之间有一条虚拟的“线缆”。JAVA有两个基于数据流的套接字类:ServerSocket,服务器用它“侦听&rdquo ......