如何使用Eclipse导入并运行源码.docx
《如何使用Eclipse导入并运行源码.docx》由会员分享,可在线阅读,更多相关《如何使用Eclipse导入并运行源码.docx(23页珍藏版)》请在冰点文库上搜索。
![如何使用Eclipse导入并运行源码.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/342484e2-4849-4452-8427-641b6987ae98/342484e2-4849-4452-8427-641b6987ae981.gif)
如何使用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又担心它烦琐的初学者有些帮助。
建立,打包,部署及运行Duke银行应用程序
作者:
Jimsons
1.准备工作...
2. 启动服务器...
2.1创建银行数据库...
2.2捕获数据库模式...
2.3创建JDBC数据源...
2.4将用户和组添加到file域...
3.编译Duke银行应用程序代码...
4.打包并部署Duke银行应用程序...
4.1打包企业Beans.
4.2打包应用程序客户端...
4.3打包Web客户端...
4.4打包并部署应用程序...
5.运行应用程序客户端ApplicationClient
6.运行Web客户端...
7.关于例子源代码中的错误更正...
7.1NextIdBean代码中的错误...
7.2Web模块中的错误...
8.参考资料...
1.准备工作
假设你的计算机中已经安装了J2EE1.4SDK,在建立DUKE银行应用程序之前,你必须到#tutorial下载j2eetutorial压缩包并将其解压缩,假定你解压的路径为/j2eetutorial14,打开例子的配置文件/j2eetutorial14/examples/common/build.properties
l 将j2ee.home的值设为你应用程序服务器(ApplicationServer)的安装位置,例如你的应用程序服务器安装在C:
/Sun/AppServer,那么你应该设置如下:
j2ee.home=C:
/Sun/AppServer
l 将j2ee.tutorial.home 的值设置为你j2eetutorial的安装位置,例如:
j2ee.tutorial.home=C:
/j2eetutorial14
l 假如你安装应用程序服务器的时候管理员的用户名不是用默认的admin,那你要将admin.user的值改为你设置的用户名
l 假如你安装应用程序服务器时不是用默认的8080端口,则要将domain.resources.port的值改为你设置的端口.
l 将/j2eetutorial14/examples/common/admin-password.txt文件中AS_ADMIN_PASSWORD的值设为你安装应用程序服务器时设置的管理员密码,如:
AS_ADMIN_PASSWORD=yourpassword
2. 启动服务器
你必须先启动PointBase数据库服务器并且向数据库中添加客户和帐号的资料,你还要向应用程序服务器中添加一些资源,最后你才能开始打包,部署和运行例子.
2.1创建银行数据库
你必须先创建数据库并向数据表中输入数据,然后企业Bean才能从中读取或向其中写入数据,请根据以下步骤来创建数据表并输入数据:
1. 启动PointBase数据库服务器
2. 打开命令行,转到/j2eetutorial14/examples/bank/目录下,执行命令asantcreate-db_common,这条命令调用PointBase终端工具库执行/j2eetutorial14/examples/bank/sql/create-table.sql中的SQL语句,这些SQL语句的功能是先删除所有已经存在的表并创建新表并向表中插入数据,因为第一次运行这些语句时这些表并不存在,所以你会看到一些SQL错误信息,你可以忽略不理这些错误信息.
2.2捕获数据库模式
在创建表并输入数据之后,你可以捕获表间的结构并保存到一个模式文件中,请通过以下步骤来捕获模式:
1. 打开命令行并切换到/j2eetutorial14/examples/bank/目录
2. 执行以下命令asantcapture-db-schema,执行此命令后生成模式文件/j2eetutorial14/examples/bank/build/dukesbank.dbschema
2.3创建JDBC数据源
Duke银行的企业Bean用JNDI名jdbc/BankDB来引用数据库,请执行以下步骤:
1. 打开管理终端页面http:
//localhost:
4848/asadmin
2. 展开JDBC分支,选择JDBCResources,选择New
3. 将其命名为jdbc/BankDB并将它映射到PointBasePool
2.4将用户和组添加到file域
将用户和组添加到file安全域后,应用程序服务器就能判断哪些用户能访问Web客户端的企业Bean的方法和资源,添加的步骤如下:
1. 打开管理终端页面http:
//localhost:
4848/asadmin
2. 展开Configuration分支并展开Security分支
3. 展开Realms分支并选中file域
4. 点击ManageUsers并点击New
5. 根据下表输入Duke银行的用户和组
User
Password
Group
200
j2ee
bankCustomer
bankadmin
j2ee
bankAdmin
3.编译Duke银行应用程序代码
打开命令行,转到/j2eetutorial14/examples/bank/目录,执行命令asantbuild,这个命令就编译了企业Bean,应用程序客户端和Web客户端的全部代码,编译后的代码位于/j2eetutorial14/examples/bank/build目录下.
4.打包并部署Duke银行应用程序
以下过程假设你对用部署工具打包企业Bean,应用程序客户端和Web应用程序的过程都比较熟悉,下面介绍如何打包并部署Duke银行(如果你按照以下步骤做了之后,部署或运行此应用程序还存在问题,那你可以用我们在/j2eetutorial14/examples/bank/provided-jars/目录下提供的EAR文件即打包好的文件来部署和运行这个例子)
4.1打包企业Beans
1. 创建一个EJBJAR模块并命名为DukesBankEJBJAR,将其保存到/j2eetutorial14/examples/bank/目录下.
2. 添加/j2eetutorial14/examples/bank/build/com/sun/ebank/目录下的ejb和util包,还有/j2eetutorial14/examples/bank/build/目录下的dukesbank.dbschema文件.
3. 创建实体Beans(选择添加到DukesBankEJBJAR中)
a.用企业Bean向导创建下面每个表格中的CMP2.0(容器管理持久性)企业bean:
AccountBean的设置如下表:
Setting
Value
LocalHomeInterface
LocalAccountHome
LocalInterface
LocalAccount
PersistentFields
accountId,balance,beginBalance,beginBalanceTimeStamp,creditLine,description,type
AbstractSchemaName
AccountBean
PrimaryKeyClass
ExistingfieldaccountId
CustomerBean的设置如下表:
Setting
Value
LocalHomeInterface
LocalCustomerHome
LocalInterface
LocalCustomer
PersistentFields
city,customerId,email,firstName,lastName,middleInitial,phone,state,street,zip
AbstractSchemaName
CustomerBean
PrimaryKeyClass
ExistingfieldcustomerId
TxBean的设置如下表:
Setting
Value
LocalHomeInterface
LocalTxHome
LocalInterface
LocalTx
PersistentFields
amount,balance,description,timeStamp,txId
AbstractSchemaName
TxBean
PrimaryKeyClass
ExistingfieldtxId
NextIdBean的设置如下表:
Setting
Value
LocalHomeInterface
LocalNextIdHome
LocalInterface
LocalNextId
PersistentFields
beanName,id
AbstractSchemaName
NextIdBean
PrimaryKeyClass
ExistingfieldbeanName
4.根据下表建立实体bean的关系:
Multi-plicity
BeanA
FieldReferencingBeanBandFieldType
BeanB
FieldReferencingBeanAandFieldType
*:
*
AccountBean
customers,java.util.Collection
CustomerBean
accounts,java.util.
Collection
1:
*
AccountBean
none
TxBean
account
b.在Sun-specificSettingsàCMPDatabase对话框
1. 将JNDI名字命名为jdbc/BankDB
2. 点击CreateDatabaseMappings,选中MaptoTablesinDatabaseSchemaFile并从下拉列表中选择dukesbank.dbschema,如下图所示
3. 每选择一个企业bean,下方就会显示持久域的映射,请确认那些域和关系.
c.根据下表为finder设置EJBQL查询语句
Duke银行中的finder查询
EnterpriseBean
Method
EJBQLQuery
AccountBean
findByCustomerId
selectdistinctobject(a)
fromAccountBeana,in(a.customers)asc
wherec.customerId=?
1
CustomerBean
findByAccountId
selectdistinctobject(c)
fromCustomerBeanc,in(c.accounts)asa
wherea.accountId=?
1
CustomerBean
findByLastName
selectobject(c)
fromCustomerBeanc
wherec.lastName=?
1
TxBean
findByAccountId
selectobject(t)
fromTxBeant
wheret.account.accountId=?
3
and(t.timeStamp>=?
1andt.timeStamp<=?
2)
d.在NextIdBean的Transaction标签中,将NextIdBean.getNextId方法的TransactionAttributes属性设置为RequiresNew.
5.调用企业Bean向导创建下表中的statefulsessionbeans(即有状态会话bean)
SessionBean
HomeInterface
RemoteInterface
ImplementationClass
Account
ControllerBean
Account
ControllerHome
Account
Controller
AccountControllerBean
Customer
ControllerBean
Customer
ControllerHome
Customer
Controller
CustomerControllerBean
TxControllerBean
TxControllerHome
TxController
TxBean
a. 根据下表列出的添加sessionbeans到localentitybeans的EJBreferences即EJB引用.
EJBReferencesinAccountControllerBean
CodedName
EJBType
Interfaces
HomeInterface
LocalInterface
EnterpriseBeanName
ejb/account
Entity
Local
Local
AccountHome
LocalAccount
AccountBean
ejb/
customer
Entity
Local
Local
CustomerHome
LocalCustomer
CustomerBean
ejb/nextId
Entity
Local
Local
NextIdHome
LocalNextId
NextIdBean
EJBReferencesinCustomerControllerBean
CodedName
EJBType
Interfaces
HomeInterface
LocalInterface
EnterpriseBeanName
ejb/customer
Entity
Local
LocalCustomerHome
Local
Customer
CustomerBean
ejb/nextId
Entity
Local
Local
NextIdHome
Local
NextId
NextIdBean
EJBReferencesinTxControllerBean
CodedName
EJBType
Interfaces
HomeInterface
LocalInterface
EnterpriseBeanName
ejb/account
Entity
Local
Local
AccountHome
Local
Account
AccountBean
ejb/
tx
Entity
Local
Local
TxHome
LocalTx
TxBean
ejb/nextId
Entity
Local
Local
NextIdHome
Local
NextId
NextIdBean
b. 将所有sessionbean的TransactionManagement设置为Container-Managed即容器管理
6. 保存这个模块
4.2