package com.bruceeckel.tools;
public class P{
public static void rint(String s){
System.out.print(s);
}
public static void rintln(String s){
System.out.println(s);
}
}package com.bruceeckel.tools;public class ToolTest{
public static void main(String[] args){
P.rintln("Available from now on!");
P.rintln(""+100);
P.rintln(""+100L);
P.rintln(""+3.14159);

}
}
本包不用导入。
使用classpath:
javac -classpath . file.java
java -classpath . file

解决方案 »

  1.   

    你好thinkingsleep:
        这个问题很关键。首先要知道设置classpath有什么作用,其次再搞明白package的作用,最后看看怎样导入自己写的类。
        第一个问题:设置classpath的作用就是然我们写的应用程序能够找到载其中所用到类所在的位置。也就是说,如果我们在程序的开头部分加入import java.io.*;这样的语句,而我们通常设置的classpath要包括:.;jdk安装路径\dt.jar;jdk安装路径\tools.jar;其中.号表示当前路径,也就是说,我们写好程序开始用javac编译的时候,先在当前路径中寻找所用到的类,这里假设是java.io包中的RandomAccessFile类,在当前路径中找不到就再在dt.jar中找,还找不到就在tools.jar中找,最终会在tools.jar中找到,找到之后就可以使用它了,这是如果程序其它部分没错误时,编译就会通过了;
        第二个问题:package的作用简单说就是包各个类都包含在一个包中(相当于一个文件夹中)这样,被包含在同一个包中的类就可以互相访问一些资源(仅限于public,protected和friendly的资源,但是java不像C++那样有friendly关键字,其实如果一个类或变量前不加任何修饰,哪它默认就具有friendly属性,在你说的例子中你就是把P类包含在了tools这个包中了;从你的程序看,你好像使用的thingking in java中的例子,例子倒是没错,错就错在你的
    package com.bruceeckel.tools;上了。为什么呢?因为com.bruceeckel.tools是作者BruceEckel机器上的路径,而不是你机器上的路径,换句话说,package后的部分是因及其不同而定的,不是万能的。如果换作你的机器就应该package MyProjects;不过这又出现了一个问题,java中的包名一般都用小写,这样符合规范,但并不是说大写就不能用。还有一个工作是什么?对了,我像你也能想到,就是在环境变量的classpath中设置E:\Program Files\Xinox Software\JCreator Pro\;就是把以上目录加入到环境变量中,这样你在你的程序中import ToolTest.*;之后,就可以使用类P了。顺便说一句,如果类P和你的程序ToolTest.java在同一个目录下,就如同你的程序那样,那么你没必要设置package和import语句你也可以使用类P,注意这是在你设置了".;"的情况下;
        好了,第二个和第三个问题我都解释了。看看关于jar的问题。jar 文件是java archive文件的简称,其实就是把一些文件压缩到一起,其压缩用的方法与我们常用的zip压缩方法是相同的。如果如此例所示,你把MyProjects文件夹随同里面的文件都压缩成MyProjects.jar文件,你可依照常使用,如同我上面给你见的那样,程序也不用改变。一句话,一切照常。当然,我们不一定非要做成jar文件。做成jar文件的目的是在网络中,如Applet中,我们的浏览器要向服务器发出请求,然后下载服务器上的类,在你的机器上运行。在请求时,如果把很多类做成jar文件,浏览器只需向服务器发一次请求,也就说这么多地类都被看成一个文件了;相反,不做成一个jar文件的话,浏览器就必须发出多次请求来下载多个类文件,这样做比前者当然耗费了不少的网络请求时间。
        好了,不知这样解答你是否满意。Thinking in Java这本书很好,坚持学下来必有成效。
      

  2.   

    非常感谢楼上的回复,很详细.
    现在我明白了许多,但是我还是有一些问题:
    我使用的编辑器是JCREATOR,按照我在thinking in java中的例子输入程序,编译第一个程序
    p.java没有问题,会生成一个.\com\bruceeckel\tools\p.class(如果按照楼上的建议,是生成
    .\MyProjects).
    在我的理解,现在应该用set classpath命令告诉编译器有这麽一个class,他在什么路径。
    我的做法是在dos环境下用set classpath=,; E:\Program Files\Xinox Software\JCreator Pro\;
    然后,我在jcreator下面编译tooltest.java。这时还是报错。
    还有,在JCREATOR里面好像也有直接选择classpath的选相,我选择了相应的路经,可是也没有通过编译。
    请各位朋友解决我的问题。
    分我还会加的。
      

  3.   

    你好thinkingsheep
        我用的是Windows2000系统,在2000下,右键 我的电脑——〉属性——〉高级——〉环境变量——〉系统变量里新建一项classpath,然后设置相应的路径就可以了。
      

  4.   

    java3d的类包也是一样操作吗?
      

  5.   

    看一下hello word全攻略
    就在csdn上搜一下就行了。