阳光男孩

Never give up!

Entries Tagged ‘eclipse’

三大框架配制(eclispe)

1顶一下在SSH中spring起着整合的作用,所以在这里,我重点讲一下spring的配制。 一、引用相关包,并配制 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 3 "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> 4 <beans> 5 <!-- 配置数据源 --> 6 <bean id="dataSource" 7 class=...[阅读全文]

1
顶一下

在SSH中spring起着整合的作用,所以在这里,我重点讲一下spring的配制。
一、引用相关包,并配制

1 <?xml version=”1.0″ encoding=”UTF-8″?>
2 <!DOCTYPE beans PUBLIC “-//SPRING//DTD BEAN//EN”
3 “http://www.springframework.org/dtd/spring-beans-2.0.dtd”>
4 <beans>
5 <!– 配置数据源 –>
6 <bean id=”dataSource”
7 class=”org.apache.commons.dbcp.BasicDataSource”
8 destroy-method=”close”>
9 <property name=”driverClassName”>
10 <value>com.mysql.jdbc.Driver</value>
11 </property>
12 <property name=”url”>
13 <value>jdbc:mysql://localhost:3306/demo?useUnicode=true&amp;characterEncoding=utf-8</value>
14 </property>
15 <property name=”username”>
16 <value>root</value>
17 </property>
18 <property name=”password”>
19 <value>123456</value>
20 </property>
21 </bean>
22 <!– 配置Hibernate –>
23 <bean id=”sessionFactory”
24 class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean”>
25 <property name=”dataSource”>
26 <ref local=”dataSource” />
27 </property>
28 <property name=”mappingResources”>
29 <list>
30 <value>com/model/User.hbm.xml</value>
31 <value>com/model/Address.hbm.xml</value>
32 </list>
33 </property>
34 <property name=”hibernateProperties”>
35 <props>
36 <prop key=”hibernate.dialect”>
37 org.hibernate.dialect.MySQLDialect
38 </prop>
39 <prop key=”hibernate.show_sql”>true</prop>
40 </props>
41 </property>
42 </bean>
43 <!– 配置事务 –>
44 <bean id=”transactionManager”
45 class=”org.springframework.orm.hibernate3.HibernateTransactionManager”>
46 <property name=”sessionFactory”>
47 <ref local=”sessionFactory” />
48 </property>
49 </bean>
50
51 <!– DAO –>
52 <bean id=”User_Dao” class=”com.dao.User_Dao”>
53 <property name=”sessionFactory”>
54 <ref local=”sessionFactory” />
55 </property>
56 </bean>
57
58
59 <!– 定义DAO代理 –>
60 <bean id=”UserDAOProxy”
61 class=”org.springframework.transaction.interceptor.TransactionProxyFactoryBean”>
62 <property name=”transactionManager”>
63 <ref bean=”transactionManager” />
64 </property>
65 <property name=”target”>
66 <ref local=”User_Dao” />
67 </property>
68 <property name=”transactionAttributes”>
69 <props>
70 <prop key=”insert*”>PROPAGATION_REQUIRED</prop>
71 <prop key=”*”>PROPAGATION_REQUIRED,readOnly</prop>
72 </props>
73 </property>
74 </bean>
75 <!– Action –>
76 <bean id=”User_Action” class=”com.action.User_Action”>
77 <property name=”user_dao”>
78 <ref local=”User_Dao” />
79 </property>
80 </bean>
81 </beans>

1.datasource数据源配制
2.配制hibernate   sessionfactory工厂的创建
3.配制事务操作
4.写一个DAO和一个DAO代理
5.写一个Action代理
二、web.xml配制

<?xml version=”1.0″ encoding=”UTF-8″?>
<web-app xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns=”http://java.sun.com/xml/ns/javaee” xmlns:jsp=”http://java.sun.com/xml/ns/javaee/jsp” xmlns:web=”http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd” xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd” id=”WebApp_ID” version=”2.5″>
<display-name>demo</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<filter>
<filter-name>struts</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

1.配制spring路径和struts路径
三、struts2文件配制
View Code

<?xml version=”1.0″ encoding=”UTF-8″ ?>
<!DOCTYPE struts PUBLIC “-//Apache Software Foundation//DTD Struts Configuration 2.1//EN” “http://struts.apache.org/dtds/struts-2.1.dtd”>
<struts>
<!– 编码 –>
<constant name=”struts.i18n.encoding” value=”utf-8″ />
<package name=”User_Struts” extends=”struts-default”>
<action name=”User_login” class=”User_Action”>
<result name=”success”>login.jsp</result>
<result name=”input”>login.jsp</result>
</action>
</package>
</struts>

struts.properties  属性配制   struts.action.extension=do   可以配制扩展名

Comments (9)

Eclipse调试Bug的七种常用技巧

1顶一下记得刚刚毕业的时候,自己连断点也不会打,当时还在用JCreate ,就连毕业设计也是用 System.out 找 Bug 的,想想真的很笨。开始工作后,一个星期过去了,在一个 1 、 2 百万行的系统中找 Bug ,我依然在用 System.out ,当时最痛苦的就是修改代码,每次找到疑似 Bug ,就输出一下,然后重启(那时也不知道代码热替换),直到有一天带我的导师发现了这样笨笨的调试 Bug ,才让我第一次认识...[阅读全文]

1
顶一下

记得刚刚毕业的时候,自己连断点也不会打,当时还在用JCreate ,就连毕业设计也是用 System.out 找 Bug 的,想想真的很笨。开始工作后,一个星期过去了,在一个 1 、 2 百万行的系统中找 Bug ,我依然在用 System.out ,当时最痛苦的就是修改代码,每次找到疑似 Bug ,就输出一下,然后重启(那时也不知道代码热替换),直到有一天带我的导师发现了这样笨笨的调试 Bug ,才让我第一次认识了断点,也知道了代码修改完了可以进行热替换, 我这个中国教育的半牺牲品才算向美好生活迈进了一小步。

1、 条件断点
  断点大家都比较熟悉,在Eclipse Java编辑区的行头双击就会得到一个断点,代码会运行到此处时停止。
条件断点,顾名思义就是一个有一定条件的断点,只有满足了用户设置的条件,代码才会在运行到断点处时停止。
在断点处点击鼠标右键,选择最后一个”Breakpoint Properties”

断点的属性界面及各个选项的意思如下图,

2、 变量断点
  断点不仅能打在语句上,变量也可以接受断点,

  上图就是一个变量的打的断点,在变量的值初始化,或是变量值改变时可以停止,当然变量断点上也是可以加条件的,和上面的介绍的条件断点的设置是一样的。
3、 方法断点
方法断点就是将断点打在方法的入口处,

  方法断点的特别之处在于它可以打在 JDK的源码里,由于 JDK 在编译时去掉了调试信息,所以普通断点是不能打到里面的,但是方法断点却可以,可以通过这种方法查看方法的调用栈。
4、 改变变量值
  代码停在了断点处,但是传过来的值不正确,如何修改一下变量值保证代码继续走正确的流程,或是说有一个异常分支老是进不去,能不能调试时改一下条件,看一下异常分支代码是否正确?
在Debug 视图的 Variables 小窗口中,我们可以看到 mDestJarName 变量的值为 ” F:\Study\eclipsepro\JarDir\jarHelp.jar ”

  我们可以在变量上右键,选择”Change Value…” 在弹出的对话框中修改变量的值,

  或是在下面的值查看窗口中修改,保用Ctr+S 保存后,变量值就会变成修改后的新值了。

5、 重新调试

这种调试的回退不是万能的,只能在当前线程的栈帧中回退,也就说最多只能退回到当前线程的调用的开始处。
回退时,请在需要回退的线程方法上点右键,选择 “Drop to Frame”

6、 远程调试
  用于调试不在本机上的程序,有两种方式,
1、本机作为客户端
2、本机作为服务端
使用远程调试的前提是服务器端和客户端的代码是一致的。
本机作为客户端
  本机作客户端比较常用,需要在远端的服务器上的java程序在启动时打开远程调试开关,
服务器端需要加上虚拟机参数
1.5以前版本(1.5以后也可用):【-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 】
1.5及以上版本:【 -agentlib:jdwp=transport=dt_socket,server=y,address=8000】
F:\Study\eclipsepro\screensnap>java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 -jar screensnap3.jar
连接时远程服务器时,需要在Eclipse中新建一个远程调试程序

这里有一个小地方需注意,连接上的时候貌似不能自动切换到Debug视图,不要以为本机的调试程序没有连接到服务器端。
本机作为服务端
  同本机作为客户端相比,只需要修改一下“Connection Type”

这时Eclipse会进入到等待连接的状态

  连接程序使用如下参数即可连接本机服务器,IP地址请用实现IP替换~~
【-agentlib:jdwp=transport=dt_socket,suspend=y,address=127.0.0.1:8000】
F:\Study\eclipsepro\screensnap>java -agentlib:jdwp=transport=dt_socket,suspend=y,address=127.0.0.1:8000 -jar screensnap3.jar
远程调试时本地的代码修改可同步到远程,但不会写到远程的文件里,也就是说本地修改会在下次启动远程程序时就没有了,不会影响到下次使用时的远程代码。
7、异常断点
  经常遇见一些异常,然后程序就退出来了,要找到异常发生的地方就比较难了,还好可以打一个异常断点,

  上图中我们增加了一个NullPointException的异常断点,当异常发生时,代码会停在异常发生处,定位问题时应该比较有帮助。

Leave a Comment

Eclipse运行命令行参数大全

1顶一下运行 Eclipse 将 Eclipse 驱动程序安装(解压缩)到某个目录(例如,c:\eclipse)中之后,通过运行顶级安装目录中的 Eclipse 可执行文件来启动“工作台”。在 Windows 系统上,该可执行文件称为 eclipse.exe,而在 Linux 系统上称为 eclipse。注意:下列讨论描述 Windows 系统上的设置。Linux 上的设置是相似的。 如果您没有另行指定,则平台将缺省工作区目录创建为可执行文件的兄弟目录...[阅读全文]

1
顶一下

运行 Eclipse

将 Eclipse 驱动程序安装(解压缩)到某个目录(例如,c:\eclipse)中之后,通过运行顶级安装目录中的 Eclipse 可执行文件来启动“工作台”。在 Windows 系统上,该可执行文件称为 eclipse.exe,而在 Linux 系统上称为 eclipse。注意:下列讨论描述 Windows 系统上的设置。Linux 上的设置是相似的。

如果您没有另行指定,则平台将缺省工作区目录创建为可执行文件的兄弟目录(例如 c:\eclipse\workspace)。此工作区目录用作项目的缺省内容区,还用于保存任何必需的元数据。要进行共享安装或多工作区安装,应明确指出工作区的位置而不是使用缺省值。有两种控制工作区位置的方法:使用当前工作目录或使用 -data 命令行自变量。

将工作区位置设置为在当前工作目录内在此方案中,工作区位置将是当前工作目录中称为 workspace 的目录。

实现此目的最容易的方法可能是使用下列步骤来创建快捷方式:

导航到 Windows 资源管理器中的 eclipse.exe 并使用右键拖动来创建 eclipse.exe 的快捷方式。

编辑快捷方式的属性,以使启动位置:字段标识工作区位置的父目录(例如,c:\users\robert)。

关闭属性对话框并双击快捷方式(如果提供的目录为 c:\users\robert,则工作区位置将为 c:\users\robert\workspace)。

当然,您也可以使用命令提示符(通过将目录切换为工作区父目录然后运行 eclipse.exe)来获得同样的效果。

使用 -data 设置工作区的特定位置

要使用 -data 命令行自变量,只要将 -data your_workspace_location(例如,-data c:\users\robert\myworkspace)添加至快捷方式属性中的目标字段或显式地将它包括在命令行上。

使用 -vm 设置 java VM

建议显式指定在运行 Eclipse 时要使用哪个 Java VM。使用 -vm 命令行自变量(例如,-vm c:\jre\bin\javaw.exe)可以实现此目的。如果不使用 -vm,则 Eclipse 将使用在 O/S 路径上找到的一个 Java VM。当安装其它产品时,它们可更改您的路径,导致在下一次启动 Eclipse 时使用另一 Java VM。

运行 Eclipse 中的高级主题

Eclipse 可执行文件及平台本身提供了人们感兴趣的开发或调试 Eclipse 各部件的许多执行选项。运行 Eclipse 可执行文件的一般格式是:

eclipse [platform options] [-vmargs [Java VM arguments]]

Eclipse 启动参数 命令 描述 原因

-arch architecture

定义 Eclipse 平台在其上运行的处理器体系结构。Eclipse 平台通常使用 Java os.arch 属性的常用值来计算最佳设置。如果在此处指定该项,则这是 Eclipse 平台使用的值。此处指定的值可作为 BootLoader.getOSArch() 用于插件。示例值有:“x86”、“sparc”、“PA-RISC”和“ppc”。 2.0

-application applicationId

要运行的应用程序。应用程序由向 org.eclipse.core.runtime.applications 扩展点提供扩展的插件来声明。通常不需要此自变量。如果指定了此项,则该值会覆盖配置提供的值。如果不指定此项,则会运行“Eclipse 工作台”。 1.0

-boot bootJarURL

(建议不使用;用 -configuration 代替;支持 1.0 兼容)。Eclipse 平台的引导插件代码(boot.jar)的位置,表示为 URL。如果指定此项,则会用它来为装入 Eclipse 平台引导程序类装入器的类装入器设置类路径。仅当更改 startup.jar 和 boot.jar 的相对位置时才需要它。注意,不允许使用相对 URL。 *1.0

-classloaderproperties [file]

如果指定的话,则使用给定位置处的类装入器属性文件来激活平台类类装入器增强。文件自变量可以是文件路径或 URL。注意,不允许使用相对 URL。单击此处以获得更多详细信息。 2.0.2

-configuration configurationFileURL

Eclipse 平台配置文件的位置,表示为 URL。配置文件确定 Eclipse 平台、可用插件集和主要功能部件的位置。注意,不允许使用相对 URL。当安装或更新 Eclipse 平台时配置文件被写至此位置。 2.0

-consolelog

将 Eclipse 平台的错误日志镜像到用来运行 Eclipse 的控制台。与 -debug 组合时很方便使用。 1.0

-data workspacePath

要运行 Eclipse 平台的工作区的路径。工作区位置也是项目的缺省位置。相对于从中启动 eclipse 的目录来解释相对路径。 1.0

-debug [optionsFile]

将平台置于调试方式,并从给定位置处的文件装入调试选项(如果指定的话)。此文件指示哪些调试点可用于插件以及是否已启用它们。如果未给出文件位置,则平台在启动 eclipse 的目录中查找称为“.options”的文件。URL 和文件系统路径都可作为文件位置。 1.0

-dev [classpathEntries]

将平台置于开发方式。将可选类路径条目(用逗号分隔的列表)添加至每个插件的运行时类路径。例如,当工作区包含要开发的插件时,指定 -dev bin 会为每个插件项目的名为 bin 的目录添加类路径条目,允许在其中存储最新生成的类文件。除去了冗余或不存在的类路径条目。 1.0

-endsplash params

用于在 Eclipse 平台启动并运行时关闭闪屏的内部选项。此选项在闪屏处理链中不同的位置有不同的语法和语义。 2.0

-feature featureId

主要功能部件的标识。主要功能部件为 Eclipse 的已启动实例提供了产品个性,并确定使用的产品定制信息。 2.0

-keyring keyringFilePath

磁盘上授权数据库(或“密钥环”文件)的位置。此自变量必须与 -password 选项配合使用。相对于从中启动 eclipse 的目录来解释相对路径。 1.0

-nl locale

定义 Eclipse 平台在其上运行的语言环境的名称。Eclipse 平台通常自动计算最佳设置。如果在此处指定该项,则这是 Eclipse 平台使用的值。此处指定的值可作为 BootLoader.getNL() 用于插件。示例值有:“en_US”和“fr_FR_EURO”。 2.0

-nolazyregistrycacheloading

取消激活装入优化的平台插件注册表高速缓存。缺省情况下,仅当需要时才从注册表高速缓存(可用时)中装入扩展的配置元素,以减少内存占用。此选项将在启动时强制完全装入注册表高速缓存。 2.1

-noregistrycache

绕过读写内部插件注册表高速缓存文件。 2.0

-nosplash

运行平台而不显示闪屏。 1.0

-os operatingSystem

定义 Eclipse 平台在其上运行的操作系统。Eclipse 平台通常使用 Java os.name 属性的常用值来计算最佳设置。如果在此处指定该项,则这是 Eclipse 平台使用的值。此处指定的值可作为 BootLoader.getOS() 用于插件,并用于解析插件清单文件中提及的路径中 $os$ 变量的出现。示例值有:“win32”、“linux”、“hpux”、“solaris”和“aix”。 1.0

-password password

授权数据库的密码。与 -keyring 选项配合使用。 1.0

-perspective perspectiveId

启动时要在活动工作台窗口中打开的透视图。如果没有指定该参数,则将打开关闭时活动的透视图。 1.0

-plugincustomization propertiesFile

包含插件首选项缺省设置的属性文件的位置。这些缺省设置覆盖在主要功能部件中指定的缺省设置。相对于从中启动 eclipse 的目录来解释相对路径。 2.0

-plugins pluginsFileURL

(建议不使用;用 -configuration 代替;支持 1.0 兼容)。 指定 Eclipse 平台查找插件的文件的位置,表示为 URL。该文件为属性文件格式,其中键是任意用户定义名称,值是指向 plugin.xml 文件的显式路径或指向包含插件的目录的路径的用逗号分隔的列表。注意,不允许使用相对 URL。如果指定此项,则此选项会导致创建适当的临时配置。 *1.0

-refresh

启动时执行工作区的全局刷新的选项。这将使从上次平台运行以来在文件系统中所做的任何更改一致。 1.0

-showlocation

用于在窗口标题栏中显示工作区的位置的选项。在发行版 2.0 中,此选项仅与 -data 命令行自变量一起使用。 2.0

-showsplash params

用于显示闪屏(由可执行的 Eclipse 平台启动器执行)的内部选项。此选项在闪屏处理链中不同的位置有不同的语法和语义。 2.0

-vm vmPath

要用来运行 Eclipse 平台的“Java 运行时环境”(JRE)的位置。如果不指定此项,则 JRE 位于 jre(它是 Eclipse 可执行文件的兄弟目录)。相对于从中启动 eclipse 的目录来解释相对路径。 1.0

-ws windowSystem

定义 Eclipse 平台在其上运行的 Windows 系统。Eclipse 平台通常使用 Java os.name 属性的常用值来计算最佳设置。如果在此处指定该项,则这是 Eclipse 平台使用的值。此处指定的值可作为 BootLoader.getWS() 用于插件、用于配置 SWT 以及用于解析插件清单文件中提及的路径中 $ws$ 变量的出现。示例值有:“win32”、“motif”和“gtk”。 1.0

将 -vmargs 条目后面的所有自变量(但不包括 -vmargs)作为虚拟机自变量(即,在要运行的类的前面)直接传递到所指示的 Java VM。注意:如果 Eclipse 启动在 Java vm 自变量(-vmargs)之后提供的自变量(例如,-data),则 Eclipse 将不会启动并且您将接收到“JVM 已终止。出口代码为 1”的错误。

在不同的 VM 上运行

在 J9 上运行 Eclipse

当在 J9 版本 1.5 上运行 Eclipse 时,建议使用以下 VM 选项:

eclipse.exe [eclipse arguments] -vm path_to_j9w.exe -vmargs -ms:32 -mm:2048 -mo:32768 -moi:32768 -mca:32 -mco:128 -mx:2000000

当在 J9 版本 2.0 上运行 Eclipse 时,J9W 选择的缺省自变量应为合适的选项。但是,要覆盖 Eclipse 可执行文件以内部方式自动设置的参数,必须指定 -vmargs 不带任何参数,如下所示:

eclipse.exe [eclipse arguments] -vm path_to_j9w.exe -vmargs

有关进一步信息,参考 J9 VM 文档和帮助。

在 IBM Developer Kit, Java(TM) Technology Edition VM 上运行 Eclipse

IBM Developer Kit, Java(TM) Technology Edition 1.3 Linux 的缺省 VM 设置适合进行初期研究工作,但在进行大型开发时是不够的。对于大型开发,应修改 VM 自变量以使有更多的堆可用。例如,下列设置将允许 Java 堆增大为 256MB。

Comments (55)

eclipse忽略svn目录文件编译

0顶一下使用eclipse进行开发时,在编译JAVA代码时的原则是:对于源代码目录中的所有*.java文件编译成同名的*.class文件,而对 于如abc.java中的内部类C,编译成abc$C.class;对于所有非java后缀后的文件与目录,连同编译后的文件复制到目标位置。 这样就存在一个问题,如果代码是从svn库检出的,每个目录下都会有个.svn类型的目录,eclipse会把它们全都拷贝到编译目录(默认为 bin),导致svn客户...[阅读全文]

0
顶一下

使用eclipse进行开发时,在编译JAVA代码时的原则是:对于源代码目录中的所有*.java文件编译成同名的*.class文件,而对 于如abc.java中的内部类C,编译成abc$C.class;对于所有非java后缀后的文件与目录,连同编译后的文件复制到目标位置。

这样就存在一个问题,如果代码是从svn库检出的,每个目录下都会有个.svn类型的目录,eclipse会把它们全都拷贝到编译目录(默认为 bin),导致svn客户端会误认为bin目录是svn co出来的,而bin目录下的svn信息又与该目录下的文件内容不符,这样很多svn客户端就错乱了。更有甚者,会把bin目录下的内容check in到库中。

解决这个问题很简单,修改项目属性(选中工程->右键->properties),选择Java Build Path,在Sources选项卡中选择对应的源代码目录,选中Excluded,点击edit,在Exclusion pattems里填加 **/.svn/** 就可以了。这样eclipse在编译时会忽略掉.svn目录。

对于TortoiseSVN可能会设置使用_svn代替.svn目录,做相应设置即可。

Comments (259)