java用import导入时报错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java用import导入时报错相关的知识,希望对你有一定的参考价值。

为什么我在导入的时候用 com.Packagename; 可以顺利编译,
但是用com.* 时却报错,提示找不到类名?
补充,

结果为

如果是

就可以编译执行

你的环境变量中classpath要重新设定,在cmd命令框中输入以下命令后再做javac编译操作。

set classpath=c:\\Study\\Lesson3;%classpath%

而且你需要先要搞清楚package的概念,看你贴的代码中package是的根目录下是com,而你输入javac PackageTest.java这个命令时是在c:\\Study\\Lesson3这个路径下,说明你的PackageTest.java中声明语句:package com.yeahgenius.test与实际不吻合。

你有两种选择:

选择一:

1.删除PackageTest.java和ImportTest.java中 package com.yeahgenius.test这句申明,2.

输入set classpath=c:\\Study\\Lesson3;%classpath%;然后输入cd c:\\Study\\Lesson3进入根目录下

3、输入javac PackageTest.java

4、输入javac ImportTest.java

5、输入java ImportTest

选择二:

    输入mkdir com

    cd com

    mkdir yeahgenius

    cd yeahgenius

    mkdir test

    cd test

    copy c:\\Study\\Lesson3\\PackageTest.java .

    copy c:\\Study\\Lesson3\\ImportTest.java .

    set classpath=c:\\Study\\Lesson3;%classpath%

    javac PackageTest.java

    javac ImportTest.java

    java ImportTest

追问

谢谢你的回答,学了好多东西,但是还是有点不明白

我是用javac -d . 在当前目录建立的包,可以import java.until.*之类的包,也可以调用我自己创建的,把com.yeahenius.test.*;改成直接调用类名com.yeahgenius.test.PackageTest就可以编译执行了,所以是说一个包下面只有一个类的话,不可以用*来取代么?

追答

你要知道,一般*代表了当前目录的所有文件,而且默认是根据首字母排序的,ImportTest在PackageTest之前被请求编译,而ImportTest.java依赖于PackageTest.class,一般不建议这么写。

参考技术A

首先你要先说明你要import的是哪个类?在哪个包里?

假设 类 classname 在 packagename 包里。

然后

import com.packagename.classname;

或者 

import com.packagename.*;

应该就可以了。


但是如果你用:

import com.*;

就会出错,因为classname 不在 com包里。


建议:

尽量都用

import com.packagename.classname;

这样会避免packagename 包下面的一些你不熟悉的类 和 你本里的类重名,导致编译错误。

追问

程序很简单

如果我用 import com.yeahgenius.test.PackageTest;就能顺利编译,

但是 import com.yeahgenius.test.*; 就会报错。。。

追答

你的classpath是什么?你是在cmd里手动编辑的,所以你要把当前文件夹放到classpath里

参考技术B 可能com这个名字已经被用掉了,在你看不见的地方,你试试换个名字,
比如comtest.Packagename和comtest.*

而且你这个歧义比较大我也搞不清你的意思,Packagename是代表包名吗?但是你明明是把它当做一个类文件(.class)在用啊。

不会的话明早追问我吧......追问

程序很简单

如果我用 com.yeahgenius.test.PackageTest;就能顺利编译,

但是 import com.yeahgenius.test.*; 就会报错。。。

参考技术C 你好 这是用法错误 import就像你去找人一样 有名有姓 你说姓 可以找到很多一样的姓氏的人 你说姓名 就只能找到一个(假如都是唯一) 若是你什么都不说 那就爱莫能助了 有链接供你参考
http://wenku.baidu.com/link?url=YE1br1lrX7SMA_BOHZPXUYoWhofGHC7dDJywpVKytsjBbQIN2Q9oi1b724nQblhMr__OjZzIgME86hf9gAah77pG4OrNUmrA121vkLpBQ77
参考技术D 包的名字要全部写上。
如果com.packageName下有多个类,你用到了这个包下的多个类,可以通过com.packageName.*;来导入。
楼主,采纳我的吧~

Sqoop import导入表时报错java.lang.ClassNotFoundException: org.json.JSONObject

 

报错原因:
sqoop缺少java-json.jar包。

解决方案:
一. 下载java-json.jar包
地址:https://download.csdn.net/download/qq_22136439/10746801
二. 解压java-json.jar包
三. 把java-json.jar添加到$SQOOP_HOME/sqoop/lib目录 (安装sqoop的目录)

以上是关于java用import导入时报错的主要内容,如果未能解决你的问题,请参考以下文章

项目导入时报错:The import javax.servlet.http.HttpServletRequest cannot be resolved

项目导入时报错:The import javax.servlet.http.HttpServletRequest cannot be resolved

linux下import 某个包时报错完美解决

在Myeclipse buildpath 加server lib (server runtime)/项目导入时报错:The import javax.servlet.http.HttpServletR

anaconda安装tensorflow,在import tensorflow时报错,要怎么解决

IDEA reimport时报错Unable to import maven project: See logs for details