如何把一些class文件引入到一个package中 c:\mypackage\security>javac Guard.java -classpath c:\;%classpath% 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 .......import ext1;import ext2;import ext1_1;...... 运行c:\mypackage\security>java Guard -classpath c:\;%classpath% 1、依据你的意思我假定Guard.java属于包mypackage.security;2、由于Guard.java中的类属于包mypackage.security,所以Javac不会认为它属于默认包,而ext1.class属于默认包,而默认包是无法import的;3、解决方法之一,将ext1.class包含到一特定包4、解决方法之二,将Guard.java中的语句package mypackage.security;注释掉 import ext1;//语法就错了c:\mypackage\security>javac Guard -classpath c:\;%classpath%这两种方法我都试过,不行。 如果ex1.class, ex2.class等等是没有定义在包中的,楼上谈的一些方法应该可用.如果是定义在包中的,除非你告诉是什么包,否则无人能帮你, 因为import xxx.ex1; 中的xxx目前是未知的,甚至是xxx.yyy;你的题目是:如何把一些class文件引入到一个package中. 假设你现在有一个包叫做x.jar, 第一步用"jar xvf x.jar"将其展开,然后将你的类复制进展开的目录中, 再用"jar cvf x.jar -c <dir>"生成新的x.jar, 用"jar tvf x.jar"看一看你的类是否在其中. 切记: 你的类一定要放在所在包相应的目录中!!!!!! 谢谢大家的回答,并特别谢谢tangshancheng(98007)对那两种方法的测试.把我的问题再说明一下:1.ext.class 等 没有java文件,但我知道它们肯定不属于任何package.2.我就只在Guard.java要用它们,我不能为了用这个去把Guard.java从整个packgae里面拿出来.那样别的相关的程序也要用3.我现在是"编译"不过,不是运行出问题. 将ext*.class 文件移入 Guard.class所在路径 这样好象不是办法按照JAVAC编译器编译的情况来看,类属于哪个包必须是在类编译前完成的,如果只是简单移入指定目录,代码的组织管理会很混乱。所以我认为简单的移动并不是解决问题的办法。如果一定要加入包,那最好的办法就是你反编译,修改原文件,执行编译,打包解决 //如果一定要加入包,那最好的办法就是你反编译,修改原文件,执行编译,打包解决这个我想过,但该class是经过处理的,反编译后会有问题的. 在你的Guard.java中直接使用ext*各种类将ext*各类所在路径(c:)加入到CLASSPATH中去,就可以了 你可能没有把Guard.java放到包吧.把你的贴出来看看!// source file : Guard.javapackage mypackage.security;public classs Guard{} 如果没有打包就直接import yourclass;如果打包就import package.yourclass;另外,你的j2sdk需要用1.3.1版本,不要用1.4版本以上的j2sdk。 忘了说class文件要在跟包名相同的目录下面,我想这一点你应该清楚了吧? 又不想将ext*.class打包,设置classpath又不行。~~~~~似乎只有引用当前目录的才能通过吧。(或者就直接将那些类的内容加入调用类@_@) 不是不想将ext*.class打包,是这些class是经过处理的没有源代码的. 但是打包打的就是class文件啊.你能不能把你的这几个文件,包括目录结构zip起来发给我,我来试试. 怎么判断剪贴板中的数据是复制还是剪切过来的? Java SQL的问题。。。请大家帮忙 急~~!Socket~占用了端口怎么办? 一个播放器的问题 请比较一下,《java编程思想》和《深入Java虚拟机》 如何在java中操作映射盘(网络盘)的文件? 谁又jbuilder的教程电子版的,给介绍一下啊,最好有新版的,送分 在线等待,急寻weblogic 7.0中配置sql server连接池 有没有什么函数取整的??? Applet和JApplet有什么区别? 如何生成一个jar,怎么运行一个jar??? 有关rtti,想速成java,需要仔细看吗?
import ext1;
import ext2;
import ext1_1;
......
c:\mypackage\security>java Guard -classpath c:\;%classpath%
2、由于Guard.java中的类属于包mypackage.security,所以Javac不会认为它属于默认包,而ext1.class属于默认包,而默认包是无法import的;
3、解决方法之一,将ext1.class包含到一特定包
4、解决方法之二,将Guard.java中的语句package mypackage.security;注释掉
c:\mypackage\security>javac Guard -classpath c:\;%classpath%
这两种方法我都试过,不行。
1.ext.class 等 没有java文件,但我知道它们肯定不属于任何package.2.我就只在Guard.java要用它们,我不能为了用这个去把Guard.java从整个packgae里面拿出来.那样别的相关的程序也要用3.我现在是"编译"不过,不是运行出问题.
按照JAVAC编译器编译的情况来看,类属于哪个包必须是在类编译前完成的,如果只是简单移入指定目录,代码的组织管理会很混乱。所以我认为简单的移动并不是解决问题的办法。
如果一定要加入包,那最好的办法就是你反编译,修改原文件,执行编译,打包解决
把你的贴出来看看!// source file : Guard.java
package mypackage.security;
public classs Guard
{}
如果打包就import package.yourclass;另外,你的j2sdk需要用1.3.1版本,不要用1.4版本以上的j2sdk。
似乎只有引用当前目录的才能通过吧。(或者就直接将那些类的内容加入调用类@_@)