求助神奇的一个关于包的引入的问题!! 跟女朋友学java的时候发现了一个神奇的问题,是关于java包的引入的,用import 包名.*的方法引入类,发现只有在.java文件存在于该包中的时候,.*的引入才能成功,否则就路径不对访问不到,只能用 包名.类名 的方式详细指导引入。 这跟我了解的知识有些出入,.java源文件应该不会影响到类于类之间的关系才对,为什么会影响到类的引入,求高人指点。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 源文件编码类文件后就没有用了,运行的是类文件与源文件无关,用 包名.类名 的方式详细指导引入是一种另一种就是用import 包名.*那也是引入包中的所有类,具体请参看java中的命名空间 “女朋友学java”, cool. LZ的理解错了其实是这样的,你引包的内容都是在你的jre中存在的jar包,而这些jar包里面都是些.class文件,可以直接引。一般的全名能访问的类只要在某个包中都是可以直接import来引用的。至少到目前为止我还没有遇到过必须使用全名的。当然如果你两个包的同名类在一个java文件里面同时用到的时候就必须全名来区分,这种一般就是自己试验的时候看看,基本不会遇到。 个人觉得··我学了差不多一年的Java了··基本上自己写的类都是重复了API的···痛哭·· 只可能是你试验错误。要不然整个java世界都崩塌了。建议重新理一下你的实验环境。因为*.java文件是由javac。exe(windows平台下)编译的,编译后为*.class文件。然后通过java.exe执行*.class文件。按照你的说法是在java.exe执行期间,还需要用到*.java文件。——这估计当初设计java编译和运行体制的人也是没想到的。你首先要清楚,你引入的那个类,它编译后到底编译到哪个地方去了?也就是那个类的".java"文件对应的"*.class"文件到底存放在哪个位置。你是否确认,当你在实验“删除java文件,无法import”时,那个class文件是否还在,同时,是否能被你当前的类访问到。 楼主说的不是很明白,如果是Java库的类,不是你的机器Java环境没配置对,不然就是你学习的时候总是和你女朋友...如果引用的是自己写的java文件,那你这个引用的文件的包设置是否和你要执行的文件在同一个包内? 7楼说的感觉有点切近我的问题,我也是觉得这不可能,.java文件是不会影响到后面的运行的嘛,我想可能是跟编译时候文件所在的位置有关系,准备再做个实验,看看到底怎么回事。 刚才重新做了个实验,已经发现了问题所在,总结下,留给以后可能会碰到的朋友。在自己编写类的时候,有2种方法创建包,一种是-d参数创建,一种是手动创建。我用的是后者,这个过程中,若该类(也就是有声明package的那个类)的源文件不是在对应的文件夹内(既package声明的那个包)进行编译,而是编译生成.class文件后,再将其放入对应文件夹内的,那么外部类使用 import 包名.* 的方法引入这个类,就会出现无法访问的情况,只能用 包名.类名 的方法引入。只要将.java文件(有package的那个)在对应的包中编译就不会出现上述情况了。 Integer 与 int区别 组件的靠右侧对齐 怎样使用JDialog? 关于jar文件的运行(求助) ?各位朋友,如何修改JFrame标题栏中的颜色? 在design里放入DataExpress组件为什么显示不出来呢 大哥,我说的是读对输入文本进行控制,一是对输入字符长度控制,二是对输入字符进行控制,如准许输入字符"0123456789" 请问如何将焦点从表格中移出????????????? jTextField1 关于APPLET的中文显示问题? 两个极其相似的方法怎么结构写比较好 十六进制的趣事
其实是这样的,你引包的内容都是在你的jre中存在的jar包,而这些jar包里面都是些.class文件,可以直接引。
一般的全名能访问的类只要在某个包中都是可以直接import来引用的。至少到目前为止我还没有遇到过必须使用全名的。当然如果你两个包的同名类在一个java文件里面同时用到的时候就必须全名来区分,这种一般就是自己试验的时候看看,基本不会遇到。
因为*.java文件是由javac。exe(windows平台下)编译的,编译后为*.class文件。
然后通过java.exe执行*.class文件。
按照你的说法是在java.exe执行期间,还需要用到*.java文件。——这估计当初设计java编译和运行体制的人也是没想到的。
你首先要清楚,你引入的那个类,它编译后到底编译到哪个地方去了?也就是那个类的".java"文件对应的"*.class"文件到底存放在哪个位置。你是否确认,当你在实验“删除java文件,无法import”时,那个class文件是否还在,同时,是否能被你当前的类访问到。
如果是Java库的类,不是你的机器Java环境没配置对,不然就是你学习的时候总是和你女朋友...
如果引用的是自己写的java文件,那你这个引用的文件的包设置是否和你要执行的文件在同一个包内?
在自己编写类的时候,有2种方法创建包,一种是-d参数创建,一种是手动创建。我用的是后者,这个过程中,若该类(也就是有声明package的那个类)的源文件不是在对应的文件夹内(既package声明的那个包)进行编译,而是编译生成.class文件后,再将其放入对应文件夹内的,那么外部类使用 import 包名.* 的方法引入这个类,就会出现无法访问的情况,只能用 包名.类名 的方法引入。
只要将.java文件(有package的那个)在对应的包中编译就不会出现上述情况了。