关于包(package)的问题

addwart 2003-05-25 12:01:41

我做了一个package,它的名字和class同名,而且是一个三级包:package Packages.OverLoand.OverLoand_b
最后一个OverLoand_b与我的class同名。编译能通过,但不能运行。
是否还涉及到环境变量的设置?

另一个是我能不能创建一个上级包?就是把.java文件编译在上级目录中的.class文件的包?如果行怎么创建?
...全文
84 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
helpall 2003-05-25
  • 打赏
  • 举报
回复
在当前目录中,有目录Packages\OverLoand\OverLoand_b,在其中有OverLoand_b.class. 则用
java -classpath . Packages.OverLoand.OverLoand_b.OverLoand_b
来运行.
gaoxin900 2003-05-25
  • 打赏
  • 举报
回复
你的程序是否包含 main() 方法?
seven1996 2003-05-25
  • 打赏
  • 举报
回复
我觉得这不是classpath的事
楼主
在你 的java中是否加了import package?
realdreamer 2003-05-25
  • 打赏
  • 举报
回复
楼上的真卖力. 论坛需要这样的人!:)
rocandroc 2003-05-25
  • 打赏
  • 举报
回复
这个问题很关键。首先要知道设置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文件的话,浏览器就必须发出多次请求来下载多个类文件,这样做比前者当然耗费了不少的网络请求时间。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧