Redian新闻
>
How to use classes in a jar file?
avatar
How to use classes in a jar file?# Java - 爪哇娇娃
x*g
1
再来问问大小牛们。
我从来没有制作过jar文件,但用过很多别人做的,从来没问题。但是今天自己做了一
个,但是怎么也不行。具体是这样的。
1. 一个月前, 我写了一个程序A作计算。这个程序包括几个classes,都属于default的
package.
2. 这两天又写了一个程序B,也包括几个classes,都属于一个package叫做“
DataManagement”.
3. 今天想把程序A的功能包含在程序B中,于是就把A中的所有的classes放进一个jar文
件叫做“myjar.jar”。这个jar文件本身表面上看不出问题,能够解压。
4.在eclipse里通过"Add External Jars"把“myjar.jar”加入程序B的library里,这
样project的build path里就有了。我以前也是一直这样用别人的jar文件的,从来没有
问题。
5. 在程序B中准备引用“myjar.jar”中的classes,但是不成功,编译总是出错,就是
不能识别class。
6. 然后又又写个小程序C来测试。程序C中的classes都属于default的package。在程序
C中重复步骤4和5,成功了。“myjar.jar”中的classes可用。
7. 因为步骤6中的测试结果,怀疑是package的问题,于是回到程序A中,把所有
classes的package都改成“DataManagement”,然后重复步骤3,4,5和6。全部悲剧。
最后总结.
1. 我很笨
2. 人没有最笨,只有更笨,如我。
3. 这里有很多聪明及热心人,肯帮忙。
好了,请指教吧。到底咋整啊?呵呵
avatar
g*g
2
Did you write import in your Java file? If not, hit Ctrl+shift+O.
You can also Ctrl+shift+T, type class names in A to check if it's in
classpath.

【在 x*****g 的大作中提到】
: 再来问问大小牛们。
: 我从来没有制作过jar文件,但用过很多别人做的,从来没问题。但是今天自己做了一
: 个,但是怎么也不行。具体是这样的。
: 1. 一个月前, 我写了一个程序A作计算。这个程序包括几个classes,都属于default的
: package.
: 2. 这两天又写了一个程序B,也包括几个classes,都属于一个package叫做“
: DataManagement”.
: 3. 今天想把程序A的功能包含在程序B中,于是就把A中的所有的classes放进一个jar文
: 件叫做“myjar.jar”。这个jar文件本身表面上看不出问题,能够解压。
: 4.在eclipse里通过"Add External Jars"把“myjar.jar”加入程序B的library里,这

avatar
x*g
3
1 - 我不知道理解你说的没有。在程序B中,在程序A中所有classes还用default
package的时候,没有import任何东西,在程序主体中也可以直接用jar文件中的
classes.但是程序A中所有classes改了package后就不可以了。程序C怎么也不行。
2 - Ctrl+shift+O没反应,但是Ctrl+shift+T能够找到在jar文件中所有的classes. 我
不知道这意味着什么。
3 - 如果要import的话,怎么import?我一直都是加入external jar 文件在路径后就
直接在程序中用jar文件里的classes。Eclipse会提醒我import然后自动import.
请再讲讲。

【在 g*****g 的大作中提到】
: Did you write import in your Java file? If not, hit Ctrl+shift+O.
: You can also Ctrl+shift+T, type class names in A to check if it's in
: classpath.

avatar
x*g
4
Problem resolved by refreshing workspace. Don't know why this needs to be
done though. Anyone can help answer? Thanks!

【在 x*****g 的大作中提到】
: 1 - 我不知道理解你说的没有。在程序B中,在程序A中所有classes还用default
: package的时候,没有import任何东西,在程序主体中也可以直接用jar文件中的
: classes.但是程序A中所有classes改了package后就不可以了。程序C怎么也不行。
: 2 - Ctrl+shift+O没反应,但是Ctrl+shift+T能够找到在jar文件中所有的classes. 我
: 不知道这意味着什么。
: 3 - 如果要import的话,怎么import?我一直都是加入external jar 文件在路径后就
: 直接在程序中用jar文件里的classes。Eclipse会提醒我import然后自动import.
: 请再讲讲。

avatar
o*2
5
Default package里的class是不能被其它package引用的。

【在 x*****g 的大作中提到】
: 再来问问大小牛们。
: 我从来没有制作过jar文件,但用过很多别人做的,从来没问题。但是今天自己做了一
: 个,但是怎么也不行。具体是这样的。
: 1. 一个月前, 我写了一个程序A作计算。这个程序包括几个classes,都属于default的
: package.
: 2. 这两天又写了一个程序B,也包括几个classes,都属于一个package叫做“
: DataManagement”.
: 3. 今天想把程序A的功能包含在程序B中,于是就把A中的所有的classes放进一个jar文
: 件叫做“myjar.jar”。这个jar文件本身表面上看不出问题,能够解压。
: 4.在eclipse里通过"Add External Jars"把“myjar.jar”加入程序B的library里,这

avatar
x*g
6
good to know.thanks.

【在 o**2 的大作中提到】
: Default package里的class是不能被其它package引用的。
avatar
W*o
7
import 也不行吗

【在 o**2 的大作中提到】
: Default package里的class是不能被其它package引用的。
avatar
c*e
8
每个project写一個package。

【在 x*****g 的大作中提到】
: good to know.thanks.
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。