关于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类运行的方式还跟上面的
相关文档:
在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_, ......
最近公司碰到需要用图表的形式显示一些数据,我就开始到网上查询,查到了jfreechart和amcharts,这两者我都实现过了,jfreechart最后生成图片,但是图片效果不是我想要的,然后又研究amcharts 它的效果确实很好,而且官方网站上还有好些例子可供下载,网址是:www.amcharts.com
(想要完成一个amcharts图形需要swfobjects. ......
1.[http://www.javaalmanac.com] Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处.
2.[http://www.onjava.com] OReilly的Java网站. 每周都有新文章.
3.[http://java.sun.com] 官方的Java开发者网站 每周都有新文章发表.
4.[http://www.developer.com/java] ......
Java开发平台的种类很多,在这篇文章中我主要以J2SE为例子。J2SE几乎是开发所有Java应用程序的必备。它主要是由一个compiler(编译器),一个运行环境(runtime environment),和一个核心的API所构成。我们要再次要强调的是,您所编写应用程序并不是直接在您的本地操作系统上执行的 ......
运用加密技术保护Java源代码
java
程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。本文讨论如何在不修改原有程序的情
况下,通过
加密
技术保护源代
码。
一、为什么要
加密
?
......