eclipse导入已有源码

时间:2023-11-28 14:34:26

http://blog.csdn.net/scruffybear/article/details/1917301

如有转载,请注明出处,并保持文章的完整性,谢谢!

最近工作之余在研究国外经典书籍《thinking in java》的英文电子书,这本书确实是研究java的必看之作,这本书的中文版本好像有候捷大师翻译的机械工业出版社的版本,也没有仔细去找,在网上下到了这本书的英文电子版本,有空就研究一下,附带了源码,本来碰到一个例子想用Jcreator进行编译,但是发现这个例子还要用到其它的编译的.class文件,而且为数不少,这时就想到了用eclipse建一个工程一起就可以把所有的源文件全部编译完成,这样就不必去考虑编译的先后问题了(被调用的必须先编译好),全部由eclipse这个强大的IDE完成,也不用担心包之间互相调用的问题了。由于eclipse用得不是很熟,还不知道怎么样把已有的文件导入到工程中来,网上研究,顺利解决。

我的源码存放地址是:
    C:/Documents and Settings/administrator/桌面/thinking in java/aaa-TIJ3-distribution/TIJ-3rd-edition-code
    创建eclipse工程就不赘述了,建立的工程文件目录是:D:/javacard/Thinking in Java

我使用的是eclipse3.1英文版,导入源码到工作空间中去,首先要新建一个同名工程(zcl:否则会报 Destination project does not exist),选择file->import,然后再选择File system,再选择要导入的源码的路径即可导入。导入后打开properties对话框,在Java Build Path中的source中选择想要编译的目录,并且可以设置输出路径,点OK后即可对所导入的源文件进行编译。十分方便。 由于我导入的源文件下还有目录,所以这时会报错,因为导入后会按包的形式组织,所以会报以下错误:    
    The declared package does not match the expected package appendixaStringer.javaThinking in Java/appendixaline 12006年11月11日 14:11:203870
    这时只要在程序的最前面加上package命令就可以了,例如对于以上的报错,需要加入package appendixa即可。编译后接着就是运行了,运行的时候要注意,需要在工作路径下按照包来调用,例如我的工作路径是/thinking in java/c04/,下有SimpleConstructor.java文件,编译完成后,需要在/thinking in java目录下输入:java c04.SimpleConstructor,这里包括了正确的包结构,这样才能正常运行。   没有包含正确的包结构或者没有在正确的路径下操作,则会报以下错:
    Exception in thread "main" java.lang.NoClassDefFoundError: c04/SimpleConstructor
    注意目录结构是/thinking in java/c04/SimpleConstructor,所以要在thinking in java目录下运行以下命令,注意要加包结构。
    运行结果如下:
    D:/javacard/Thinking in Java>java c04.SimpleConstructor
Creating Rock
Creating Rock
Creating Rock
Creating Rock
Creating Rock
Creating Rock
Creating Rock
Creating Rock
Creating Rock
Creating Rock

这是一个有关对象初始化和构造的程序。

碰到的金山词霸发现只有最大化和最小化,点击右下角图标出现不了金山词霸界面,任务栏上有这个图标,只有在任务栏上点右键进行最大化才能使用金山词霸,那么点击右下角图标打开词霸,它跑到哪儿去了呢,这个问题困扰了我好多天。今天到baidu上去查了一下,发现原来金山词霸已经在窗口界面的外面了,必须用键盘进行拖回来。这个问题第一次碰到。

网上查阅资料顺便转载别人写的东西,觉得不错,如下:
   如何使用Eclipse导入并运行源码

如何使用Eclipse导入并运行源码(原创哦,如有转载,请注明作者forest077)

网上关于Eclipse配置和开发入门程序的文章很多,可是要么很粗浅,要么很高深,却很少看到讲解如何把别人的源码导入到自己的Eclipse环境中编译运行的描述。做为初学者,能够学习网上一些优秀源码是提高的必由之路,可是Eclipse却不象VC和Delphi那样容易上手,对于很多初学者来说,它似乎还是太难了点。在找不到很好的关于Eclipse入门教程的情况下,为了能运行网上下载的Java源码,我颇费了一些时间寻找如何正确的导入源码并运行的方法,不敢独美,特贡献出来与初学者共享。
  运行环境:
    Java EE 5.0
    Eclipse 3.1 中文版
  源代码用例(都是Java Application):
    仿真Windows记事本
    连连看
  上述的两个源代码在赛迪网上可以找到。关于JDK的配置、安装和Eclipse的安装本文不再赘述,读者可以很容易地找到相关的资料。本文只讲使用Eclipse来导入源代码的方法。
  首先确保你的工作空间已经创建好,在我的机器上工作空间所在的目录是“e:/workspace”。源代码存放路径假设为“我的文档/cai/Java/一个仿windows的记事本”和“我的文档/cai/Java/连连看/kyodai”。
  下面开始介绍导入源码的方法。
  ◎选择菜单“文件/新建/项目”,选择“Java项目”,弹出“创建Java项目”对话框。
  ◎在“创建Java项目”中输入“项目名”,项目名可以为任意名字,不必和main类的名字一样。这里假设为“Notepad”。
    在“内容”中有两个单选按钮,视你的需要来使用。其中“在工作空间中创建新项目”会在你的工作空间中创建一个新目录,目录名与项目名一致;“从现有资源创建项目”可以在源码所在目录中直接编译运行,生成的class文件也会存放在源码目录中。
  
  下面先讲“在工作空间中创建新项目”的方法。
  ◎在“内容”中单选“在工作空间中创建新项目”,点击“完成”按钮。此时在e:/workspace下生成Notepad目录。
  ◎下面需要导入源码到工作空间去。选择菜单“文件/导入”,选择“文件系统”。弹出“文件系统”对话框。
  ◎在“从目录”中选择源码存放目录“我的文档/cai/Java/一个仿windows的记事本”,勾选上所有的.java源码,其他的垃圾不要选上。下面又有两个选择:对话框下方有两个选项,若选择“创建完整的文件夹结构”,就会按源码所存放的路径完整地在工作空间中创建目录,创建完毕会由于main方法类的路径不对而在包资源管理器内的图标上显示叉叉,无法编译成功;若选择“只创建选择的文件夹”,则会在工作空间创建的目录下导入所有的文件而不会保留原目录,此时可以编译成功。
  ◎若选择“创建完整的文件夹结构”,导入完成后,选择菜单“项目/属性/Java构建路径/源代码”,点击“添加文件夹”,把子目录逐级点开,直到源代码所在这级目录为止,勾选上该目录。弹出的提示对话框点击确定即可。注意上级目录不要勾选,否则会报错。这样这种方法导入的源码也可以编译运行了。
  ◎注意若源代码中含有子目录,在main程序中会有import ...的语句,此时要注意import后面的目录级别,在选择Java构建路径时要勾选上import指明的上级目录名。例如,连连看代码中有子目录topbar,在main程序中有import kyodai.topbar语句,那么就要勾选到“我的文档/cai/Java/连连看/”这级目录,而非源码所在的“我的文档/cai/Java/连连看/kyodai”目录。
  ◎在连连看源码中,作者已经把所有源码都打包成了一个Jar,此时只需要添加该Jar包而不需要导入其他源码就可以运行了(但不能调试,因为Jar包中不含源码)。方法是创建完新项目后,选择菜单“项目/属性/Java构建路径”,点击“库”页,点击“添加外部JAR”按钮,选择源码自带的Jar包即可运行。
  
  下面介绍“从现有资源创建项目”的方法。
  ◎在“创建Java项目”对话框中,点击“下一步”按钮,弹出“Java设置”对话框。
  ◎在“Java设置”对话框中选择“库”页,选择“添加JAR”,若找不到随源码提供的Jar包,就选择“添加外部JAR”。一般如果Jar存放的目录正确,在“添加JAR”中是可以找到该条目的。双击出现的Jar包即可添加进去。若不需要额外的库支持,则点击“完成”。
  
  这样,用上面两种方法创建的项目就可以编译运行了。下面就介绍运行的方法。
  ◎选择菜单“Run/运行”,弹出“创建、管理和运行配置”对话框。
  ◎根据源码的种类在左边的列表中进行选择。我们用的两个例子都是Java应用程序,所以双击“Java应用程序”,在对话框右边可以输入运行的配置。
  ◎如果新建了项目还没有运行过,那么右边的“项目”栏缺省值即为刚创建的项目。在“名称”栏中输入运行配置的名称,建议与项目名称一致(也可以不一致),不能与其他的运行配置重名。
  ◎点击“Main类”栏右方的“搜索”按钮,一般只有一个main类,在弹出的对话框中双击下面那个栏目的main类即可。如果需要以其他的main方法做为程序入口,可以勾选上“Main类”栏下方的两个复选框,选择其他的入口。
  ◎如果需要增加特殊的环境变量,例如有的源码可能需要添加classpath环境变量,则可以在“环境”页中添加。
  ◎运行配置中的内容也会同样反映在调试配置中,运行和调试使用相同的配置。
  
  创建了一堆新项目后,包资源管理器中会有一堆乱七八糟项目,有些是你需要的,有些是早已废弃不用的,你可以删除那些不用的项目,方法是右键点击该项目,选择“删除”。这里要提醒读者一下的是,删除对话框有两个选项,问你是否删除该项目目录下的内容,缺省是“不删除内容”,如果选择删除,那么那个目录就整个被删除掉了,如果你这个目录下的东西还有用,那你只好哭了。
  删除掉没用的项目后,运行/调试对话框中多余的配置也可以删除,方法是右键点击不用的配置名,选择删除。
  
  好了,这是我初学Eclipse的一些心得,希望能对广大想要使用Eclipse又担心它烦琐的初学者有些帮助。

碰到java.lang.NoClassDefFoundError错误可以如下解决:

应该这样检查你的环境和你的操作:

1、你的文件名对吗?
Java要求你的文件和你的类名严格对应的。
比如 public class HelloWorld{ .....
那么文件名一定只能是HelloWorld.java,看仔细了!

2、你的程序中有main方法吗?参数什么的对吗?
main方法的声明应该是这样子的:
public static void main(String[] args)
事实上如果你用开发工具来做的话,是不会错的。如果你用UltraEdit之类的来写程序的话,就一个字不要改的照抄吧!

3、记住,javac后面跟的参数是文件名,但java 后面跟的是类名!
这是我开始学JAVA是犯的错,java HelloWorld.class,然后就报错。后来才弄明白,应该是java HelloWorld。

4、设置了classpath了吗?
不仅是在安装JDK时要设置的内容,一般来说最好还要自己设置一个目录来存放自己的类文件的。比如d:/class目录。
设置classpath=%classpath%;d:/class
那么,现在将HelloWorld.class文件COPY到d:/class目录下,再java HelloWorld应该就OK了。

5、结合第3点和第4点
如果你的类是属于某一个包的,比如这样一个类sony.test.HelloWorld,那么按照我在第4点中说的目录来说,就应该将HelloWorld.class文件存放到d:/class/sony/test/目录下。
执行的时候应该参考第3点中说的,按类名执行:java sony.test.HelloWorld。

明白了吗?一直我也想不出还会有什么理由造成这个出错信息了!如果有哪位兄弟想到了就补充一下吧!
其实如果你使用了一些比较好的编程工具的话,根本就没有机会碰到这个错误的,至少我在使用了VisualAge for Java之后,就没有这样的事情了。

好啦,不说了,祝同志们好运吧!
过了这第一道门,后面的就比较简单啦!