之前我曾经撰文写过
eclipse3.6+tomcat 7的整合文章,也提到过jdk1.6.21在eclipse 3.6下存在冲突的问题,但说的不是很详细,有人问到,那我就再说一下吧。这是这个官方就有说明的,在下载页面很明显的标出了,只是有的同学不是在官方下载的或者太粗心没注意到。我们看官方是怎么说的。
The Eclipse 3.3 - 3.6 launchers for Windows had a problem with the Oracle/Sun Java VM version '1.6.0_21-b06'.
UPDATE: Oracle/Sun have released a respin of their JDK/JRE to fix this, so the recommended resolution of this problem is to download and re-install version 1.6.0_21-b07' or higher from http://www.java.com (alternative link is http://java.sun.com/javase/downloads/index.jsp). Make sure you have b07 or higher by running java -version.
Before the fix was released, there were three choices to work around this:
- switch back to '1.6.0_20' (as of July 19, 2010 it can still be downloaded here)
- Change the commandline for launching or add the following line after "-vmargs" to your Eclipse.ini file:
-XX:MaxPermSize=256m
(Detailed instructions/examples)
- For 32-bit Helios, download the fixed eclipse_1308.dll and place it into
(eclipse_home)/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503
The Java bug was closed for voting and comments at 6969236 on the Java BugParade because the change has been reverted; the related Eclipse bug report is open for voting and comments at bug 319514.
已经说得很明白了,由于1.6.0_21-b06中部分包的名字被Oracle公司修改了,会造成原先的插件内存泄露,故官方也给出了三种解决方案。
(1)把JDK的版本降级到 jdk 1.6.0_20。下载地址:here
(2)修改Eclipse.ini文件里的设置,在-vmargs后添加或修改下面这句-XX:MaxPermSize=256m。
(3)对于32位版本的Eclipse3.6,可以下载这个补丁。eclipse_1308.dll,并且放置到(eclipse_home)/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503。
(4)升级jdk1.6.0_21-b06到1.6.0_21-b07或更高。
October 18, 2010
| 作者:白菜
|
分类:JAVA
本文系转载,文中内容未经测试。
需求描述:任何程序都会存在bug,虽然项目经过反复测试,已经上线运行了,但难免会遇到各种错误,在这里轻松配置log4j实现错误消息的email通知.
两个文件:web.xml log4j.properties
web.xml
在web.xml中添加如下代码
<!-- 设置上下文参数 -->
<context-param>
<!-- log4j配置文件位置 -->
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>6000</param-value>
</context-param>
<!-- log4j监听器 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
log4j.properties
阅读剩余部分...
本文将介绍eclipse 3.6汉化的技术,当然下面的介绍理论上对Eclipse略早一些的版本也是适用的,但是我并没有汉化过3.6一下的版本,因为我这里只有eclipse 3.6的安装包,我就用这个来讲解。
关键词:eclipse 3.6汉化,omcatPluginV321汉化包,JAR文件解包打包及汉化
众所周知,eclipse是一个优秀的IDE,可以用来开发JAVA,PHP,C/C++等,目前的最新版本是3.6,为用英文版。官方也有汉化包,但是并不完整。由于eclipse是由一个个插件组成的,因此官方的汉化包只是基于基本的IDE,对于从其他地方下来的插件是没有汉化的。如果你想DIY自己的eclipse或者需要汉化自己下载的eclipse插件,那你可以继续阅读本文。
一.本文以汉化eclipse的tomcat插件tomcatPluginV321为例,在此之前,你需要做以下准备
(1)汉化eclipse并不需要什么高深的技术,由于它是基于JAR包的,所以我们只要有JAVA的基础知识(即使你没有,那你看了下文我的介绍后,也完全可以自己汉化,一同分享)。因此呢,如果你英语不好的话,需要一个翻译软件,推荐
有道词典。如果你对计算机专业英语很熟悉,最好。
(2)由于编码问题的普遍原因,汉化并非是汉化成中文,而是汉化成unicode码。(关于编码的知识,
请看这里【字符编码笔记:ASCII,Unicode和UTF-8】)。所以你需要一个汉字到Unicode的转换软件。这种小软件很好找,你也可以用汉化助手来帮忙。
(3)JDK,你需要一个JDK来解包,打包JAR文件,我的是JDK 1.6.18。
阅读剩余部分...
October 17, 2010
| 作者:白菜
|
分类:JAVA
iBATIS是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO),同时还提供一个利用这个框架开发的JPetStore实例。相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,ibatis 是一种“半自动化”的ORM实现。
其中SQL MAP的体系结构如下:

平时我们跟数据库交互,直接在java代码中编写sql语句,获取数据库链接,然后执行得到结果。
Jsp:
sql =“ select 2 from dual“ ;
rs = stmt.executeQuery(sql);
Java:
sql =“ select 2 from dual“ ;
Map tMap = (Map) SafeDBConn.get(sql);
我们的Sql语句是放在jsp或者java代码中,如果要修改的话需要重新进行编译。
ibatis实现了sql语句和代码的分离,把sql放在了xml配置文件中。
例如:
<!--根据手机号码查询教师信息 -->
<select id="selectTeacherByMobile" parameterClass="String" resultClass="Teacher">
select * from teacher where mobile=#mobile#
</select>
阅读剩余部分...
一款专业级Web开发工具NetBeans6.9.1,php,java开发利器.
首先,之所以标题不叫 PHP开发工具,是因为这是一个综合的开发工具,就像Eclipse、VS,所以,如果你只是纯粹的PHP开发人员,也许你会有更好的选择。
所以这贴不是讨论那个好那个坏的,仁者见仁,智者见智,各有所需,各有所好。
由于本人经过长时间的使用和赛选,觉得它是最出众的,不敢独享,所以拿出来分享。
言归正传,本人重点推荐的Web专业开发工具是:NetBeans
没错,你没看错,就是SUN公司推出的皇家Java开发工具,今年已经10年了,但是很少有人知道它能用来做PHP开发,因为NetBeans在2008年的9月份左右才开始支持PHP开发,也推出了相应的PHP版,安装文件>相当小,只有31M,当然并没有包含Java运行环境,这个需要独立安装。但是对于JAVA版的,可以下载捆绑了JRE的安装包。
NetBeans目前有JAVA,JAVAFX,J2EE,C++,PHP,RUBY,ALL一共7个安装包,最新版本为6.9.1。
介绍一下它的特性
阅读剩余部分...
September 7, 2010
| 作者:白菜
|
分类:JAVA
1. 从一个简单小实验开始:
(1) Eclipse下建一简单Java project,写一个简单程序,如下:
- package com.javaeye.loader;
-
- public class URLClassLoaderTest {
- public void show() {
- System.out.println("I am running...");
- }
- }
package com.javaeye.loader;public class URLClassLoaderTest { public void show() { System.out.println("I am running..."); }}(2) 到项目对应bin/com/javaeye/loader下找到URLClassLoaderTest.class文件,将此文件保存,然后删除整个project;
(3) 在磁盘任何位置建立文件夹com,在com里建立javaeye,在javaeye里建立loader,我建在C盘java目录下,建立完成后将(2)中保存的URLClassLoaderTest.class文件拷贝到其中,
(4) 在非本地Apache Server上任何位置建立文件夹com,在com里建立javaeye,在javaeye里建立loader文件夹,完成后将(2)中保存的URLClassLoaderTest.class文件拷贝到其中,我的非本地计算机IP为192.168.66.250,系统为Linux Redhat, 建立完成后我们可以访问
(5) 给出两端端测试代码:
- @Test
- public void testInWeb() throws Exception{
- URL[] urls = new URL[]{new URL("http://192.168.66.250/root/java/")};
- URLClassLoader loader = new URLClassLoader(urls);
- Class clas = loader.loadClass("com.javaeye.loader.URLClassLoaderTest");
- Method m = clas.getMethods()[0];
- Object o = clas.newInstance();
- m.invoke(o);
- }
- @Test
- public void testInFileSystem() throws Exception{
- URL[] urls = new URL[]{new URL("file:/C:/java/")};
- URLClassLoader loader = new URLClassLoader(urls);
- Class clas = loader.loadClass("com.javaeye.loader.URLClassLoaderTest");
- Method m = clas.getMethods()[0];
- Object o = clas.newInstance();
- m.invoke(o);
- }
@Test public void testInWeb() throws Exception{ URL[] urls = new URL[]{new URL("http://192.168.66.250/root/java/")}; URLClassLoader loader = new URLClassLoader(urls); Class clas = loader.loadClass("com.javaeye.loader.URLClassLoaderTest"); Method m = clas.getMethods()[0]; Object o = clas.newInstance(); m.invoke(o); } @Test public void testInFileSystem() throws Exception{ URL[] urls = new URL[]{new URL("file:/C:/java/")}; URLClassLoader loader = new URLClassLoader(urls); Class clas = loader.loadClass("com.javaeye.loader.URLClassLoaderTest"); Method m = clas.getMethods()[0]; Object o = clas.newInstance(); m.invoke(o); } 分别运行两端代码他们输出结果都是:
阅读剩余部分...
August 26, 2010
| 作者:白菜
|
分类:JAVA
剑字有19种写法,Java中字符串连接也有好多种写法,比如要连接6个字符串,以下5种写法都是可以的,究竟哪种写法最简捷,哪种最高效呢。
public static String concat1(String s1, String s2, String s3, String s4, String s5, String s6) {
String result = "";
result += s1;
result += s2;
result += s3;
result += s4;
result += s5;
result += s6;
return result;
}
阅读剩余部分...