當使用eclipse的maven:出现Missing indirectly referenced artifact com.sun:tools:jar:1.5.0:system 错误,是因为需要jdk的tools。
根本原因是没有指定javaw.exe的的位置,所以在eclipse.ini中用-vm指定javaw的位置就可以了~一定要在 openFile 以下加才行,在別的地方加,都會無效~
-startup
plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar
–launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.2.R36x_v20101222
-product
org.eclipse.epp.package.jee.product
–launcher.defaultAction
openFile
–launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
–launcher.XXMaxPermSize
256m
–launcher.defaultAction
openFile
-vm
C:/java/jdk1.6.0_21/bin/javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
为了并行开发多个需求,往往需要在多个代码环境下使用eclipse。workspace之间切换非常方便,那么我们就可以通过不同的workspace的方式来切换我们开发的代码。
但是随着多workspace开发的进行,workspace设置历史记录越来越长,只要你使用过的workspace都被记录了下来,随着时间的推移就好比以前的裹脚布越臭越长。要解决这种问题,就要我们管理起我们自己的workspace设置,google及百度了一下,发现了以下方法可以设定和清除不要的workspace:
1.打开eclipse下的/configuration/.settings目录
2.修改文件org.eclipse.ui.ide.prefs
3.把RECENT_WORKSPACES这项修改为你需要的那些目录,以\n分隔
每次Eclipse启动的时候总是跑到用户目录下的workspace,按照网上的方法修改了很多次,还是成功不了。如何改变默认的路径呢?经过在Eclipse文件夹里的一番搜索,发现这样可以:
修改eclipse\configuration\config.ini的osgi.instance.area.default后面的路径改成自己想要设置的Workspace路径,那么你启动Eclipse就会跑到你自己定义的Workspace下。
低版本jdk6与cxf中的jaxb-api.jar、jaxws-api.jar会存在不兼容问题
具体异常:
java.lang.NoClassDefFoundError: javax/xml/ws/soap/MTOM–>jaxws-api.jar
java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSeeAlso–>jaxb-api.jar
因为cxf2.3.3需要jaxws-api-2.1.jar及jaxb-api-2.1.jar支持,而jdk1.6.0_02中默认的是jaxws-api-2.0.jar及jaxb-api-2.0.jar
要解决这个问题有两种处理方式:
1、升级jdk来解决,我升级到jdk1.6.0_22及以后版本是可以使用的
2、让低版本jdk也能支持jaxws-api-2.1.jar及jaxb-api-2.1.jar,那么可以如下处理:
写一个main函数,输出System.out.println(System.getProperty(“java.endorsed.dirs”)); 获得endorsed目录的位置,如果没有endorsed目录则新建,并宝贝jaxws-api-2.1.jar和jaxb-api-2.1.jar到endorsed目录下,那么jdk1.6.0_02调用的jaxws-api.jar及jaxb-api.jar也全是2.1的
大家都知道,windows下配置eclipse+tomcat是很简单的,但是那一套在ubuntu下却是行不通的。因为windows下tomcat安装或者下载都是在同一个目录的,但是在ubuntu下安装的tomcat却因为各个模块因为权限什么的分布在不同的目录的,有在etc下的,有在lib下的,日志又是放在自己的目录下的。那么要解决这个问题,最直接的是为它们建立软链接,让eclipse能够找到它。
[code]
sudo ln -s /var/lib/tomcat6/conf /usr/share/tomcat6/conf
sudo ln -s /etc/tomcat6/policy.d/03catalina.policy /usr/share/tomcat6/conf/catalina.policy
sudo ln -s /var/log/tomcat6 /usr/share/tomcat6/log
sudo chmod -R 777 /usr/share/tomcat6/conf
[/code]
完成以上的记录,你就像和windows下一样设置eclipse,开始ubuntu下开发之旅。
winetricks是一个非常好的wine辅助工具,它包含wine常用软件的一个列表,解决安装依赖问题。
winetricks在装软件时会出现像“sha1sum mismatch!Rename /home/admin/.cache/winetricks/InstMsiA.exe and try again.”的提示,解决这个问题很简单
1、cd /home/admin/.cache/winetricks/
2、sudo rm -rf * (删除掉winetricks目录下所有文件)
注:个人以为产生以上错误,是因为在过去安装软件的时候发生过错误,而再次安装默认是从cache下读取文件的,那么可能读到是过去出过错的程序,现在把.cache下相关的软件删除掉,那么就相当于全新开始安装相关软件。
百度加Google查找unicode字符操作方法,翻了好几页,总是找到不合适的源码或实例。没有办法,自己写吧!
需求:实现汉字字符转换成unicode,unicode恢复还原汉字字符
[code]
public class UnicodeUtil {
/**
* unicode字符恢复
* @param unicode
* @return 转换成功的字符
*/
public static String unicode2Char(String unicode) {
int len = unicode.length();
StringBuffer chinese = new StringBuffer(len);
char tmp;
for(int index=0;index<len;){
tmp = unicode.charAt(index++);
if(tmp=='\\'){
tmp = unicode.charAt(index++);
if(tmp=='u'){
StringBuffer cTmp = new StringBuffer(4);
for(int i=0;i<4;i++){
tmp = unicode.charAt(index++);
cTmp.append(tmp);
}
chinese.append((char) Integer.parseInt(cTmp.toString(), 16));
}
}else{
chinese.append(tmp);
}
}
return chinese.toString();
}
/**
* 字符转换成unicode
* @param s
* @return unicode字符
*/
public static String char2Unicode(String s) {
StringBuffer unicode = new StringBuffer();
for(char c:s.toCharArray()){
if(c>128){
unicode.append("\\u").append(Integer.toHexString(c));
}else{
unicode.append(c);
}
}
return unicode.toString();
}
}
[/code]
1、关于tomcat的一点事情
一直认为在eclipse上改掉tomcat的server.xml文件是可以直接生效的,昨天才发现必须得重新publish下才会生效,杯具了,希望有类似经历的tx不要犯相同的错误。
2、ubuntu下卸载wine
sudo aptitude purge wine (如果不存在aptitude则请先安装sudo apt-get install aptitude)
接着cd ~/.local/share/applications/;sudo rm -rf wine* 删除所有wine相关的东东,那么世界变得清净了
3、ubuntu远程连接到windows只要一句话
rdesktop 192.168.1.2(目标机器ip地址)
-f 全屏 -u 登录用户名 -p登录密码 更多参数查看man rdesktop
rdesktop -f -uadmin -p123456 192.168.1.2
4、通过重定向来达到ubuntu下不能配置tomcat80口的问题
iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 8080
5、产生一个0-32767的随机整数
echo $RANDOM
6、15分钟前的时间按yyyy-MM-dd HH:mm:ss显示
date -d ‘-15min’ ‘+%Y-%m-%d %T’
说干就干,要跨域,那么就要有两个域名,本机测试,只要指host就行了。host设置如下:
127.0.0.1 www.a.com
127.0.0.1 www.b.com
接着开始上代码:
http://www.b.com/b.jsp 通过js设置a的cookie
================
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%
response.addHeader("Cache-Control","no-cache");
response.addHeader("Expires","Thu,01 Jan 1970 00:00:01 GMT");
cookiev = "test";
%>
================
http://www.a.com/a_setcookie.jsp www.a.com下的cookie设置
================
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%
response.setHeader("P3P","CP=\"CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR\"");
String cookiev = request.getParameter("cookiev");
Cookie _cookie = new Cookie("test",cookiev );
_cookie.setMaxAge(30*60*100);
_cookie.setPath("/");
_cookie.setDomain(".a.com");
response.addCookie(_cookie);
%>
================
http://www.a.com/a_getcookie.jsp www.a.com下的cookie遍历
================
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%
Cookie cookies[]=request.getCookies();
Cookie sCookie = null;
if(cookies==null){
out.print("none any cookie");
}else{
out.println(cookies.length+"
“);
for(int i=0;i
out.println("getVersion==>>>”+sCookie.getVersion()+”\n”);
out.println(“cookiename==>>>”+sCookie.getName()+”->cookievalue==>>>”+sCookie.getValue()+”
“);
}
}
%>
================
花絮:在firefox下可以不用设置response头的p3p申明,而ie是必须的。
1. 修改/etc/profile文件
如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。
·用文本编辑器打开/etc/profile
·在profile文件末尾加入:
[java]
JAVA_HOME=/usr/share/jdk1.5.0_05
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
[/java]
·重新登录
·注解
a. 你要将 /usr/share/jdk1.5.0_05jdk 改为你的jdk安装目录
b. linux下用冒号“:”来分隔路径
c. $PATH / $CLASSPATH / $JAVA_HOME 是用来引用原来的环境变量的值
在设置环境变量时特别要注意不能把原来的值给覆盖掉了,这是一种
常见的错误。
d. CLASSPATH中当前目录“.”不能丢,把当前目录丢掉也是常见的错误。
e. export是把这三个变量导出为全局变量。
f. 大小写必须严格区分。
2. 修改.bashrc文件
这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bashrc文件就可以了。
·用文本编辑器打开用户目录下的.bashrc文件
·在.bashrc文件末尾加入:
set JAVA_HOME=/usr/share/jdk1.5.0_05
export JAVA_HOME
set PATH=$JAVA_HOME/bin:$PATH
export PATH
set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CLASSPATH
·重新登录
3. 直接在shell下设置变量
不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦。
只需在shell终端执行下列命令:
export JAVA_HOME=/usr/share/jdk1.5.0_05
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
Analytics Plugin created by Web Hosting