java中import的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中import的问题相关的知识,希望对你有一定的参考价值。
我的编程平台是JCreator,我的两个文件放在硬盘的E:\yu\java\programme\
分别为MyClass.java和UseMyClass.java
MyClass.java里面:
package kk;
public class MyClass
public void f2()
System.out.println("MyClass built!");
UseMyClass.java里面:
import kk.*;
public class UseMyClass
MyClass myc=new MyClass();
public static void main(String[] args)
myc.f2();
//Aaa a=new Aaa();
//a.f1();
依次编译,编译UseMyClass时出现以下错误提示:
E:\yu\java\programme\UseMyClass.java:4: 无法访问 MyClass
错误的类文件: E:\yu\java\programme\MyClass.java
文件不包含类 MyClass
请删除该文件或确保该文件位于正确的类路径子目录中。
MyClass myc=new MyClass();
为什么会出现这样的错误呢?
应该就可以了 参考技术A 你调试时不该出现这样的错误啊 ,应该是
--------------------配置: q - j2sdk1.4.2 <默认> - <默认>--------------------
E:\JAVA\JCreatorV3\UseMyClass.java:7: non-static variable myc cannot be referenced from a static context
myc.f2();
^
1 error
处理已完成。
你编译时是否写错名字了? 参考技术B 这个文件MyClass.java应该放在E:\yu\java\programme\kk目录下.
关于java import的问题
在类中引入一个包,如果出现命名冲突,那JVM会引入哪个包?
比如说我在一个类里写了import java.lang.xx.java
但在这个项目下也有一个包叫import java.lang.xx.java,那当我实例一个xx对象时,是实例的哪个xx类?引入一个包,JVM怎么去找这个包,也就是说从哪里开始找这个类或这个包?
如果你定义的一个 JButton 类 ,然后导入 java.swing.JButton 然后程序
中用到 JButton 时,JVM 会按照你的 classpath 配置 来加载
如classpath=.;java_home/lib;
就会先查看当前目录是否有JButton
没有就到java.swing.JButton 下。 参考技术A 这个就要看你的classpath配置如何了,jvm是按照classpath设置的路径顺序调用下去。如classpath=.;java_home/lib;就会先查看当前目录是否有这个包,没有就到java_home/lib下。本回答被提问者采纳 参考技术B ....你可以用java里已经用了的包名吗? 我记得不可以吧...
而且包机制是用来干嘛的? 是便于管理项目,和防止命名冲突的.
如果真的出现你说的这种情况,那根本就是你自己的问题。
我是这样理解的,希望能帮到你.. 参考技术C 当你实例化java.lang.xx.java 的时候,你要给定它的全路径,程序中可以出现同名的类,但为了区分它们,只要是你使用它们的时候,都必须给出全路径。也因为此,这时候你也不用import了,不然真的会有问题了 参考技术D 其实你完全不用这么引入,比如你用到Date的时候,有好几个Date,有包 java.util.Date的Date;也有java.sql.Date的Date;你只需要这样子写就OK了:
java.util.Date date = new java.util.Date();
或者
java.sql.Date date = new java.sql.Date(0);
不知道你说的是不是我将的意思哦?
以上是关于java中import的问题的主要内容,如果未能解决你的问题,请参考以下文章