俊星的BLOG

#

在ubuntu上手工安装JDK

ubuntu上安装JDK的方法有多种,我选择的是手工安装的方式,下面是安装过程,以备忘:
1:下载安装文件,如jdk-6u14-linux-i586.bin
2:开始安装,使用到的命令有:
// 切换到管理员
sudo su

// 删除文件
rm jdk-6u14-linux-i586.bin 

// 级联删除文件夹
rm -rf jdk1
.6.0_14/

// 拷贝文件
cp /home/kinkding/download/jdk-6u14-linux-i586.bin ./

// 拷贝文件夹
cp -rf /home/kinkding/dev/jdk1
.6.0_14 /usr/java/

// 授予文件执行权限
chmod +x jdk-6u14-linux-i586.bin 

// 执行文件
./jdk-6u14-linux-i586.bin 

// 编辑profile文件按
gedit /etc/profile

// 在profile中添加的语句,设置环境变量(一般放置在文件尾部,umask 022之前)
export JAVA_HOME
=/usr/java/jdk1.6.0_14
export CLASSPATH
=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH
=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

注意:修改/etc/profile之后,需要注销重登陆才生效。

posted @ 2009-06-05 12:54 俊星 阅读(454) | 评论 (0)编辑 收藏

JAVA单向加密(MD5,SHA,MAC)

具体代码如下:
import java.security.MessageDigest;

import javax.crypto.KeyGenerator;
import javax.crypto.Mac;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

/**
 * 加密(主要有:MD4,SHA,MAC)
 * 
 * 
@author kinkding
 * @history 2009-6-3
 
*/

public class MyEncrypt {
    
/** MD5 加密 */
    
public static byte[] encryptMD5(byte[] data) throws Exception {
        MessageDigest md5 
= MessageDigest.getInstance("MD5");
        md5.update(data);
        
return md5.digest();
    }


    
/** SHA 加密 */
    
public static byte[] encryptSHA(byte[] data) throws Exception {
        MessageDigest sha 
= MessageDigest.getInstance("SHA");
        sha.update(data);
        
return sha.digest();
    }


    
/** 取得HMAC密钥 */
    
public static String getMacKey() throws Exception {
        KeyGenerator keyGenerator 
= KeyGenerator.getInstance("HmacMD5");
        SecretKey secretKey 
= keyGenerator.generateKey();
        
return new BASE64Encoder().encode(secretKey.getEncoded());
    }


    
/** 执行加密 */
    
public static byte[] encryptHMAC(byte[] data, String key) throws Exception {
        
byte[] bkey = new BASE64Decoder().decodeBuffer(key);
        SecretKey secretKey 
= new SecretKeySpec(bkey, "HmacMD5");
        Mac mac 
= Mac.getInstance(secretKey.getAlgorithm());
        mac.init(secretKey);
        
return mac.doFinal(data);
    }


    
private static String toHex(byte[] buffer) {
        StringBuffer sb 
= new StringBuffer(buffer.length * 3);
        
for (int i = 0; i < buffer.length; i++{
            sb.append(Character.forDigit((buffer[i] 
& 0xf0>> 416));
            sb.append(Character.forDigit(buffer[i] 
& 0x0f16));
        }

        
return sb.toString();
    }


    
public static void main(String[] args) {
        String msg 
= "生活真好^_^";
        
byte[] data = msg.getBytes();
        
try {
            System.out.println(
"msg:" + msg);
            System.out.println(
"md5:" + toHex(encryptMD5(data)));
            System.out.println(
"sha:" + toHex(encryptSHA(data)));
            String key 
= getMacKey();
            System.out.println(
"mac key:" + key);
            System.out.println(
"mac:" + toHex(encryptHMAC(data, key)));
        }
 catch (Exception e) {
            e.printStackTrace();
        }


    }

}


运行效果如下:
msg:生活真好^_^
md5:e0649dfaef57789734e920c7ecb9c4ea
sha:a4bd855836de26b2323778b797629fed4416f12f
mac key:zBPe28oho2H84+Mg8mF4abpd0MQvdjgqgFdX4hmUQQbOGnX1aFq/oQnogsHVIczgx1AZ1s2/ncPz
tBQIGLZUnw
==
mac:87f4140161ad43797059e85dd9962897

posted @ 2009-06-03 23:20 俊星 阅读(1262) | 评论 (0)编辑 收藏

WINDOWS和LINUX平台获取MAC地址

Windows平台:

主要是通过执行“ipconfig /all”命令实现:
    public String getMyMACAddress() {
        String macAddr 
= "";
        
try {
            Process p 
= Runtime.getRuntime().exec("ipconfig /all");
            BufferedReader reader 
= new BufferedReader(new InputStreamReader(p.getInputStream()));
            String line 
= null;
            
while ((line = reader.readLine()) != null{
                
if (line.indexOf("Physical Address"> 0{
                    macAddr 
= line.substring(line.indexOf(":"+ 1, line.length()).trim();
                    
break;
                }

            }

        }
 catch (IOException e) {
            e.printStackTrace();
        }

        
return macAddr;
    }

Linux下的方式为:

posted @ 2009-06-03 20:39 俊星 阅读(340) | 评论 (0)编辑 收藏

关于lisence的讨论

今天在JAVA EYE上看到了一篇关于授权的讨论,http://www.javaeye.com/topic/399622?page=1 ,下面是我看法:

  1. 获取过程,需要联网注册,lisence 暂时包含两个属性:用户数、到期时间
  2. 激活,也需要联网,修改lisence的两个属性,如用户数递减,需要特殊处理的是同一用户可以多次激活
  3. 正常运行后,在本地保存激活信息,不需要再次联网,之后每次启动时检查到期时间

稍后有时间的话,将写一个DEMO来试验一下。

posted @ 2009-06-02 23:55 俊星 阅读(209) | 评论 (0)编辑 收藏

SWT试用之控制鼠标键盘

通过SWT可以控制鼠标键盘事件,具体如下:
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

/**
 * 预期的运行效果为:显示开始菜单
 * 
@author kinkding
 * @history 2009-6-2
 
*/

public class MyEventRes {

    
public static void main(String[] args) {
        
final Display display = new Display();
        
final Shell shell = new Shell(display);
        
final Text text = new Text(shell, SWT.BORDER);
        text.setSize(text.computeSize(
150, SWT.DEFAULT));
        text.setText(
"神一样的人啊!");
        shell.pack();
        shell.open();

        
new KeyThread(display).start(); // 键盘响应
        
// new MouseThread(display).start(); // 鼠标响应
        while (!shell.isDisposed()) {
            
if (!display.readAndDispatch())
                display.sleep();
        }

        display.dispose();
    }

}


class MouseThread extends Thread {
    Display display;
    
int h;

    
public MouseThread(Display display) {
        
this.display = display;
        h 
= display.getPrimaryMonitor().getBounds().height;
    }


    
public void run() {
        Event event 
= new Event();
        
// 移动鼠标
        event.type = SWT.MouseMove;
        event.x 
= 5;
        event.y 
= h - 5;
        display.post(event);
        
try {
            Thread.sleep(
100);
        }
 catch (InterruptedException e) {
        }

        
// 按下右键
        event.type = SWT.MouseDown;
        event.button 
= 1;
        display.post(event);
        
try {
            Thread.sleep(
100);
        }
 catch (InterruptedException e) {
        }

        
// 恢复
        event.type = SWT.MouseUp;
        display.post(event);
    }

}


class KeyThread extends Thread {
    Display display;
    
int h;

    
public KeyThread(Display display) {
        
this.display = display;
        h 
= display.getPrimaryMonitor().getBounds().height;
    }


    
public void run() {
        Event event 
= new Event();
        
// 按下CTRL
        event.type = SWT.KeyDown;
        event.keyCode 
= SWT.CTRL;
        display.post(event);
        
try {
            Thread.sleep(
100);
        }
 catch (InterruptedException e) {
        }

        
// 按下ESC
        event.type = SWT.KeyDown;
        event.keyCode 
= SWT.ESC;
        display.post(event);
        
try {
            Thread.sleep(
100);
        }
 catch (InterruptedException e) {
        }

        
// 恢复
        event.type = SWT.KeyUp;
        event.keyCode 
= SWT.CTRL;
        display.post(event);
        
try {
            Thread.sleep(
100);
        }
 catch (InterruptedException e) {
        }

        event.type 
= SWT.KeyUp;
        event.keyCode 
= SWT.ESC;
        display.post(event);
    }

}

posted @ 2009-06-02 00:15 俊星 阅读(812) | 评论 (0)编辑 收藏

仅列出标题
共10页: 上一页 1 2 3 4 5 6 7 8 9 下一页 Last