急急急!求助关于Jcreator,Eclipse 的import问题!

naodai_mmx 2005-04-19 03:06:42
我用的IDE是Jcreator,以前用eclipse也遇到同样的问题。
我写了一个class,需要在键盘读入数字,于是import一个叫做simplejava的package,其作用很简单,就是从键盘读入。
import simplejava.*;
public class Game
{
.......
}
这个package与该class放在同一目录下,在dos环境下运行通过,而用Jcreator或者eclipse complie时出现如下错误: package simplejava does not exit.

特向各位高手讨教,问题解决立即给分,谢谢!
...全文
262 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimmyvk 2005-04-25
  • 打赏
  • 举报
回复
你可以在JC_HOME\MyProjects\JTest\classes\下面看看两种方式生成的文件有什么不同,这样应该可以有所发现了
jimmyvk 2005-04-25
  • 打赏
  • 举报
回复
刚才试了一下,我把文件解压后的结构为\sheffield\*,这个时候add path把sheffield文件夹的路径加进来,编写编译HelloWorld,看到你说的现象了:
D:\Program Files\JCreator\MyProjects\FirstProject\HelloWorld.java:8: cannot access EasyReader
bad class file: E:\Java2\bin\sheffield\EasyReader.class
class file contains wrong class: sheffield.EasyReader
Please remove or make sure it appears in the correct subdirectory of the classpath.
EasyReader keyboard = new EasyReader();
^
1 error

这个时候说明已经找到sheffield的所在路径了,但是说Please remove or make sure it appears in the correct subdirectory of the classpath,说明EasyReader类的文件结构可能对当前编译不对,这个时候打开EasyReader看到package sheffield;把这句话屏蔽了就可以了。
另外一种不改变EasyReader的结构的做法是将sheffield.rar解压成\sheffield\sheffield\*,这个时候就保留了EasyReader的包结构,此时add path引入路径为第一个sheffield所在路径,编译HelloWorld也可正常通过
naodai_mmx 2005-04-25
  • 打赏
  • 举报
回复
呵呵,终于解决了,在JC_HOME\MyProjects\JTest\classes\ 下多了sheffield包的类文件。你所说的两种方法我都是过了,都行的通。不过我发现一个问题改了之后,却不能在cmd下编译,其产生的错误和之前JC的错误差不多,无法找到sheffield包。有没有两全其美的办法?难道我要生成两个包分别针对两种编译?似乎有点。。。。
Anyway,很感谢你一直对我的指导!分我先送上,后面的问题你如果有时间不嫌麻烦的话帮我想一下,谢谢!
naodai_mmx 2005-04-24
  • 打赏
  • 举报
回复
to jimmyvk(J仔)
已经发了
naodai_mmx 2005-04-23
  • 打赏
  • 举报
回复
我快疯了!还是不行,现在我从新再来,把JC删了重装。版本pro 3.50.009破解版。
创建workplace->empty project->add new class->HelloWorld

public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hellow world!!");
}
}
运行正常,然后首行添加import sheffield.*;并没有出现你所说的“如果是V3.5PRO的话,在你输入import simplejava.时系统会找到该包下的类并调出来让你选择”,是不是我的版本有问题?可能的话吧你的JC传给我。然后按照原先的顺序project properties->JDK profile->JDK 1.4.08->edit->classes->add path->...\bin\sheffield,如果add archive学要jar或者zip文件,包里没有,于是我试过把sheffield压缩成zip,再add archive。结果都不行。于是我又在add path中加入sheffield的上一级目录即\bin\,compile居然通过,兴奋啊!没加入bin目录之前怎么都通不过,不知道什么原因。然后我试着在main里面用到包里的类,main变成如下
EasyReader keyboard = new EasyReader();
String a = keyboard.readString("Input your name: ");
System.out.println("Hellow world!! Hello " + a + "!!");
为了确认包是否有问题,我把HelloWorld.java复制一份放到与sheffield同一个目录,即\bin\,在cmd下运行通过,说明包应该没问题,也说明我没有存在调用上的或者打字的错误。回到JC compile,出现一条错误
D:\Program Files\JCreator\MyProjects\FirstProject\HelloWorld.java:8: cannot access EasyReader
bad class file: E:\Java2\bin\sheffield\EasyReader.class
class file contains wrong class: sheffield.EasyReader
Please remove or make sure it appears in the correct subdirectory of the classpath.
EasyReader keyboard = new EasyReader();
^
1 error
照道理说,sheffield包已经检测到,也试过包确实可用,怎么会出这个错误呢?百思不得其解,看着这么个Hello World都搞了N久,觉得还是用ultraedit来的快啊!郁闷

麻烦 jimmyvk(J仔) 大哥再帮我看看,另外我Q 50729374,或者我们有机会在Q上交流一下
topil 2005-04-23
  • 打赏
  • 举报
回复
最好是把你用到的类文件都打成jar包,然后通过工程--属性 java build path --library--add library 然后一步一步把你的jar包加到这个工程里面即可
jimmyvk 2005-04-23
  • 打赏
  • 举报
回复
把包发给我试试看吧,jimmyvk@126.com
naodai_mmx 2005-04-23
  • 打赏
  • 举报
回复
打包jar也试过了,也add 了archive,还是说cannot access EasyReader。。。。。。。无语
你也用JC吗?那我把包传给你帮我试试可不可以,就试上面那个HelloWorld,如果能用,你在把步骤告诉我,麻烦了!
naodai_mmx 2005-04-23
  • 打赏
  • 举报
回复
在about JC里写的是 3.50 pro,我想不是LE,但怎么没有你说的功能呢?是不是要设置什么?
另外我说一下我的sheffield的结构:
JDK目录是E:\Java2,以前我都是将class放在\bin\里面为了方便编译,于是sheffield也放在\bin\里,这样一来,在我没有set classpath的情况下,都能在cmd里运行,当然我现在set了。而sheffield是个文件夹,里面没有子文件夹,只有类文件和html,是个很简单的包,里面只有3个类:EasyReader,EasyWriter,EasyGraphic.至于把包打成jar我还没有试过,我现在去试试看如何。
jimmyvk 2005-04-23
  • 打赏
  • 举报
回复
V3.5PRO是JC3.5的PRO版,不象LE版简化了很多功能,它提供了JC的全部功能,如果你用的不是的话可以下载试试(推荐使用)
根据你说的情况,我首先想确认一下:
你的sheffield是一个文件夹吗,里面是不是存放着类文件及子文件夹这种结构,如果是这样的话,你就可以通过add path的方式把最上层结构的文件夹的路径加进来(比方说我import bin.sheffield.*,这个时候你要添加的应该是bin文件夹而不是sheffield文件夹的路径,怕说的不清楚,再多例两个,如果是import sheffield.*----[如果你在程序中可以这样用的话],这个时候就是sheffield文件夹的路径,java里面的文件都是按包的形式组织的,包结构其实也就是一级级文件夹结构,这个时候你只要把最上层文件夹路径添加进来就好了)
如果sheffield不是上述结构而是存放jar文件,这个时候你就应该是add archive,把这个具体的jar加进来(你在project properties->JDK profile->JDK 1.4.08->edit->classes不是可以看到很多这种添加方式进来的包么,如E:\jdk1.4.08\jre\lib\tr.jar等等)。推荐将包(类)文件打成jar的包再使用add archive方式
我说的可能很混乱,但是我想你在实验中并结合你所对java构建方式的了解,这样可能会有比较大的帮助,而且可以加深认识,我也是初学者,大家有空多交流!
jimmyvk 2005-04-23
  • 打赏
  • 举报
回复
首先确定一下不引入包运行一个简单程序(HelloWorld?)时出不出问题来判断系统引入jre中的包是否正确,正常的话试着引入一个其它包进来运行程序看是否出错(你用的JC是什么版本,如果是V3.5PRO的话,在你输入import simplejava.时系统会找到该包下的类并调出来让你选择---和eclipse一样),这一步主要是看是不是你的simplejava包有问题,有问题则重新打包,如其它包引入进来也出同样的问题则建议试着重装一下JC(反正很小,才几M),看看是不是JC安装的有问题,你上面的操作是正确的了,哦,等等,“Game.java 在一个叫Math的project里,然后project properties->JDK profile->JDK 1.4.08->edit->classes->add path->...\simplejava”,这步改一下将add path改为add archive,然后指向你的simplejava包,这下应该是没问题了
jimmyvk 2005-04-22
  • 打赏
  • 举报
回复
怎么,还没解决吗,“在class下add path呢还是archive?”,这里add archive加入你要用到的jar就可以了
eclipse是比较耗资源,机器比较烂的时候有时打开一个设置都要等上n久,但不得不承认它的功能比JC还是强,好用啊!
naodai_mmx 2005-04-22
  • 打赏
  • 举报
回复
Game.java 在一个叫Math的project里,然后project properties->JDK profile->JDK 1.4.08->edit->classes->add path->...\simplejava
然后compile如下

--------------------Configuration: Math - JDK 1.4.08 <Default> - <Default>------------
D:\Program Files\JCreator\MyProjects\Math\src\Game.java:1: package simplejava does not exist
import simplejava.*;
^
D:\Program Files\JCreator\MyProjects\Math\src\Game.java:6: cannot access EasyReader
bad class file: E:\Java2\bin\simplejava\EasyReader.class
class file contains wrong class: simplejava.EasyReader
Please remove or make sure it appears in the correct subdirectory of the classpath.
EasyReader keyboard = new EasyReader();
^
2 errors
naodai_mmx 2005-04-22
  • 打赏
  • 举报
回复
就是解决不了啊,郁闷死我了,干脆我附上我的class
import simplejava.*;
public class Game{
public static void main(String args[])
{
int Com=(int)(Math.random()*3);
EasyReader keyboard = new EasyReader();
System.out.println("\n游戏规则如下: ");
System.out.println("\n石头 胜 剪子, ");
System.out.println("剪子 胜 布, ");
System.out.println(" 布 胜 石头.");
System.out.println("\n 0-----石头");
System.out.println(" 1-----剪子");
System.out.println(" 2-----布");
System.out.println();
int Choise = keyboard.readInt("游戏开始,你: ");
System.out.println("电脑: "+Com);
System.out.println();
int Result=Choise-Com;
if(Result==-1 || Result==2) System.out.println("-Win!!-");
else
{
if(Result==0) System.out.println("\n\t Draw Game!!");
else System.out.println("\n\t Loss!!");
}
}
}
naodai_mmx 2005-04-21
  • 打赏
  • 举报
回复
其实这个问题困扰我很久了,以前就因为这个问题我不再用eclipse而改用ultra设置成IDE,不过毕竟不是专门为JAVA设置的,有时候不是很方便。现在刚开始用JC,感觉不错,启动速度比eclipse快n倍,不过又遇上这个问题。如果有强人能帮我解决将万分感激!
naodai_mmx 2005-04-21
  • 打赏
  • 举报
回复
goodhal0418(远远读你)
你在命令行下编译可以通过是因为操作系统的PATH下有 .; 也就是当前目录。而你用IDE的时候一定要设好IDE的PATH才行。JC可以按楼上的方法做,ECLIPSE的是在项目属性里设。


我有按照楼上的去做,但是还通不过编译!
另外我再提个问题,在C里面有个scanf函数读键盘输入,那么java怎么实现呢?是不是一定要import?
iamzhanglin 2005-04-21
  • 打赏
  • 举报
回复
up!
goodhal0418 2005-04-21
  • 打赏
  • 举报
回复
你在命令行下编译可以通过是因为操作系统的PATH下有 .; 也就是当前目录。而你用IDE的时候一定要设好IDE的PATH才行。JC可以按楼上的方法做,ECLIPSE的是在项目属性里设。
naodai_mmx 2005-04-21
  • 打赏
  • 举报
回复
zxs790501(沧海一粟)
用IDE中的导入功能应该可以。

能不能说详细点?
naodai_mmx 2005-04-21
  • 打赏
  • 举报
回复
jimmyvk(J仔)
在jcreator的configure-->options-->JDK Profiles中选择你的JDK Profile文件(如j2sdk1.4)编辑,在class标签下添加入你所需要的包

在class下add path呢还是archive?我用的包里面包含有java文件和class文件以及html文件,我试过了add path,结果好像不行,compile结果都是一样。而我在class标签下原有的都是jar文件。

麻烦继续指点,谢谢!
加载更多回复(4)

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧