﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-兴趣与爱好-文章分类-JAVA</title><link>http://www.blogjava.net/kennyr/category/32969.html</link><description>学习交流</description><language>zh-cn</language><lastBuildDate>Fri, 05 Sep 2008 21:35:34 GMT</lastBuildDate><pubDate>Fri, 05 Sep 2008 21:35:34 GMT</pubDate><ttl>60</ttl><item><title>JDK</title><link>http://www.blogjava.net/kennyr/articles/227294.html</link><dc:creator>-南风</dc:creator><author>-南风</author><pubDate>Fri, 05 Sep 2008 10:08:00 GMT</pubDate><guid>http://www.blogjava.net/kennyr/articles/227294.html</guid><wfw:comment>http://www.blogjava.net/kennyr/comments/227294.html</wfw:comment><comments>http://www.blogjava.net/kennyr/articles/227294.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kennyr/comments/commentRss/227294.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kennyr/services/trackbacks/227294.html</trackback:ping><description><![CDATA[一、、安装JDK&nbsp; <br />
&nbsp;<br />
从sun网站上直接下载JDK：http://java.sun.com/j2se/1.4.2/download.html&nbsp; 提供了两个下载：&nbsp; <br />
&nbsp;<br />
1、RPM&nbsp; in&nbsp; self-extracting&nbsp; file&nbsp; (j2sdk-1_4_2_04-linux-i586.bin,&nbsp; 32.77&nbsp; MB)&nbsp;&nbsp;&nbsp; 这个是自解压的文件，在linux上安装如下：&nbsp; <br />
&nbsp;<br />
#&nbsp; chmod&nbsp; u+x&nbsp; ./j2sdk-1_4_2_04-linux-i586.bin&nbsp; <br />
&nbsp;<br />
#&nbsp; ./j2sdk-1_4_2_04-linux-i586.bin&nbsp; <br />
&nbsp;<br />
在按提示输入yes后，jdk被解压到./j2sdk1.4.2_04目录下。为与下面2中JDK安装路径一致，我们进行下列操作,在/usr/java下建立安装路径，并将文件考到该路径下：&nbsp; <br />
&nbsp;<br />
#&nbsp; mkdir&nbsp; /usr/java&nbsp; <br />
&nbsp;<br />
#&nbsp; cp&nbsp; -fr&nbsp; ./j2sdk1.4.2_04&nbsp; /usr/java&nbsp; <br />
&nbsp;<br />
&nbsp;&nbsp; <br />
&nbsp;<br />
2、RPM&nbsp; in&nbsp; self-extracting&nbsp; file&nbsp; (j2sdk-1_4_2_04-linux-i586-rpm.bin,&nbsp; 32.77&nbsp; MB)这个也是一个自解压文件，不过解压后的文件是j2sdk-1_4_2_04-linux-i586-rpm包，执行rpm命令装到linux上就可以了。安装如下：&nbsp; <br />
&nbsp;<br />
#chmod&nbsp; u+x&nbsp; ./j2sdk-1_4_2_04-linux-i586-rpm.bin&nbsp; <br />
&nbsp;<br />
#&nbsp; ./j2sdk-1_4_2_04-linux-i586-rpm.bin&nbsp; <br />
&nbsp;<br />
#&nbsp; rpm&nbsp; -ivh&nbsp; j2sdk-1_4_2_04-linux-i586-rpm&nbsp; <br />
&nbsp;<br />
安装软件会将JDK自动安装到&nbsp; /usr/java/j2sdk1.4.2_04目录下。&nbsp; <br />
&nbsp;<br />
二、配置环境变量&nbsp; <br />
&nbsp;<br />
1.修改用户环境变量&nbsp; <br />
&nbsp;<br />
假设使用java的用户为&nbsp; kunp，编辑该用户的.bashrc文件进行环境变量设置。&nbsp; <br />
&nbsp;<br />
#&nbsp; vi&nbsp; /home/kunp/.bashrc&nbsp; <br />
&nbsp;<br />
在&nbsp; .bashrc文件中加入：&nbsp; <br />
&nbsp;<br />
export&nbsp; JAVA_HOME=/usr/java/j2sdk1.4.2_04&nbsp; <br />
export&nbsp; CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib&nbsp; <br />
export&nbsp; PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin&nbsp; <br />
&nbsp;<br />
2.修改所有用户的环境变量&nbsp; <br />
&nbsp;<br />
#&nbsp; vi&nbsp; /etc/profile&nbsp; <br />
&nbsp;<br />
在该文件中加入:&nbsp; <br />
&nbsp;<br />
export&nbsp; JAVA_HOME=/usr/java/j2sdk1.4.2_04&nbsp; <br />
export&nbsp; CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib&nbsp; <br />
export&nbsp; PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin&nbsp; <br />
&nbsp;<br />
一定要在CLASSPATH路径中加入$CLASSPATH:之前我因为没有加入这个东东，在解释执行class文件时总是报错。&nbsp; <br />
<img src ="http://www.blogjava.net/kennyr/aggbug/227294.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kennyr/" target="_blank">-南风</a> 2008-09-05 18:08 <a href="http://www.blogjava.net/kennyr/articles/227294.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>yguard</title><link>http://www.blogjava.net/kennyr/articles/222706.html</link><dc:creator>-南风</dc:creator><author>-南风</author><pubDate>Mon, 18 Aug 2008 03:19:00 GMT</pubDate><guid>http://www.blogjava.net/kennyr/articles/222706.html</guid><wfw:comment>http://www.blogjava.net/kennyr/comments/222706.html</wfw:comment><comments>http://www.blogjava.net/kennyr/articles/222706.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kennyr/comments/commentRss/222706.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kennyr/services/trackbacks/222706.html</trackback:ping><description><![CDATA[<p>yguard是一个很好用的java类文件模糊器（obfuscation）。它和ant配合使用，需要修改ant的build.xml文件，把它们集成到一起。需要把生成的class文件打包成jar文件，然后对jar文件进行模糊化。 <br />
yguard可以完成以下模糊化工作： <br />
&nbsp;&nbsp;&nbsp; －模糊化方法（函数）中的变量名 <br />
&nbsp;&nbsp;&nbsp; －模糊化类的成员变量名 <br />
&nbsp;&nbsp;&nbsp; －模糊化方法名 <br />
&nbsp;&nbsp;&nbsp; －模糊化类名 <br />
&nbsp;&nbsp;&nbsp; －模糊化包路径 <br />
&nbsp;&nbsp;&nbsp; －去除class文件的调试信息等等</p>
<p>其中，对模糊化类的成员变量名、方法名、类名，可以分别设置保护级别。设置的修饰符和java的修饰（访问控制）符一致，包括： <br />
&nbsp;&nbsp;&nbsp; －public <br />
&nbsp;&nbsp;&nbsp; －protected <br />
&nbsp;&nbsp;&nbsp; －private <br />
&nbsp;&nbsp;&nbsp; －none：表示对名称不进行模糊化。注意，本修饰符是yguard特有的，java中没有</p>
<p>以保护方法名为例 <br />
&nbsp;&nbsp;&nbsp; －public表示除了public的方法名不需要混淆外，模糊化其他所有的方法名（即：模糊化protected和private修饰的方法名）； <br />
&nbsp;&nbsp;&nbsp; －protected表示除了public和protected的方法名不进行混淆，其余的方法名都要进行模糊化（即：模糊化private修饰的方法名）； <br />
&nbsp;&nbsp;&nbsp; －private表示对方法名不进行混淆 <br />
&nbsp;&nbsp;&nbsp; －none表示对所有方法名均进行模糊化，包括public的方法名</p>
<p>保护级别在obfuscate部分通过如下参数设置（示例）： <br />
&lt;expose&gt; <br />
&nbsp; &lt;class classes="public" methods="public" fields="public"&gt; <br />
&nbsp; &lt;/class&gt; <br />
&lt;/expose&gt;</p>
<p>其中的参数说明如下： <br />
&nbsp;&nbsp;&nbsp; －classes：设置类名保护级别 <br />
&nbsp;&nbsp;&nbsp; －methods：设置方法名保护级别 <br />
&nbsp;&nbsp;&nbsp; －fields：设置类的成员变量保护级别</p>
<p>最新版本及详情请访问&lt;a href="http://www.yworks.com/en/products_yguard_about.htm" target="_blank"&gt;yGuard官方网站&lt;/a&gt;</p>
<p>&nbsp;</p>
<p>以下是一个配置样例： <br />
&lt;?xml version="1.0"?&gt; <br />
&lt;project name="ee2ee" default="obfuscate" basedir="."&gt;</p>
<p>&nbsp; &lt;target name="init"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- The root directory of the workspace --&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="ee2ee.home" value="."/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- The destination directory for the build --&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="ee2ee.build" value="${ee2ee.home}/build"/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- The source directory for the build --&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="ee2ee.src" value="../"/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- The destination directory for all the compiled classes. --&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="ee2ee.bin_dir" value="${ee2ee.build}/classes"/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- The classpath used for building the workspace. --&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="ee2ee.classpath" value="../libs/j2ee.jar;${ee2ee.home}/libs/log4j-1.2.6.jar"/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- The classpath used for building the workspace. --&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="jar" value="test.jar"/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- The classpath used for building the workspace. --&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="obfjar" value="test_obf.jar"/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- The classpath used for building the workspace. --&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="obflog" value="test_obflog.xml"/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- The root directory of web server context --&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="webserver.home" value="D:\projects\exam\website\WEB-INF\classes"/&gt; <br />
&nbsp; &lt;/target&gt;</p>
<p>&nbsp; &lt;target name="compile" depends="init"&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;mkdir dir="${ee2ee.bin_dir}"/&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;javac srcdir="${ee2ee.src}" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; destdir="${ee2ee.bin_dir}" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; classpath="${ee2ee.classpath}" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; includes="com/ee2ee/*.java" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; debug="on" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; encoding="gb2312" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; failonerror="true"/&gt; <br />
&nbsp; &lt;/target&gt;</p>
<p>&nbsp; &lt;target name="components" depends="init"&gt; <br />
&nbsp; &lt;/target&gt; <br />
&nbsp; <br />
&nbsp;&nbsp; &lt;target depends="jar" name="obfuscate"&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;taskdef name="obfuscate" classname="com.yworks.yguard.ObfuscatorTask" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; classpath="yguard.jar"/&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- the following can be adjusted to your needs --&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;obfuscate mainclass="com.ee2ee.Obtest" logfile="${obflog}" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; replaceclassnamestrings="true"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="error-checking" value="pedantic"/&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;inoutpair in="${jar}" out="${obfjar}"/&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;expose&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;class classes="none" methods="none" fields="none"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/class&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/expose&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/obfuscate&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;/target&gt; <br />
&nbsp; &lt;!-- create .jar --&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;target name="jar" depends="compile"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;jar jarfile="${jar}" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; basedir="${ee2ee.bin_dir}" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; includes="com/ee2ee/*"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="${ee2ee.src}"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="com/ee2ee/**/*.properties"/&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/jar&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;/target&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;!-- run project --&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;target name="run" depends="obfuscate"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;java&nbsp; fork="true"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;classpath&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;pathelement location="${obfjar}"/&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/classpath&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/java&gt; <br />
&nbsp;&nbsp;&nbsp; &lt;/target&gt;</p>
<p><br />
&nbsp; &lt;target name="clean" depends="init"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;delete dir="${ee2ee.build}"/&gt; <br />
&nbsp; &lt;/target&gt;</p>
<p>&nbsp; &lt;target name="copy" depends="init"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;copy todir="${webserver.home}"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileset dir="${ee2ee.bin_dir}"&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;include name="com/**/*.class"/&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/fileset&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/copy&gt; <br />
&nbsp; &lt;/target&gt; <br />
&nbsp; <br />
&nbsp; &lt;!--&lt;target name="core" depends="compile, components"/&gt;--&gt; <br />
&nbsp; &lt;target name="core" depends="compile"/&gt;</p>
<p>&nbsp; &lt;/project&gt; </p>
<img src ="http://www.blogjava.net/kennyr/aggbug/222706.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kennyr/" target="_blank">-南风</a> 2008-08-18 11:19 <a href="http://www.blogjava.net/kennyr/articles/222706.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>