2012-12-07 4 views
0

코드 :java.lang.NoClassDefFoundError가 클래스 경로를 추가 할 때


import org.apache.commons.codec.binary.Base64; 

import java.io.UnsupportedEncodingException; 
import java.security.InvalidAlgorithmParameterException; 
import java.security.InvalidKeyException; 
import java.security.MessageDigest; 
import java.security.NoSuchAlgorithmException; 
import java.security.NoSuchProviderException; 
import java.security.SecureRandom; 
import java.security.spec.InvalidKeySpecException; 
import java.util.Arrays; 

import javax.crypto.BadPaddingException; 
import javax.crypto.Cipher; 
import javax.crypto.IllegalBlockSizeException; 
import javax.crypto.NoSuchPaddingException; 
import javax.crypto.SecretKey; 
import javax.crypto.SecretKeyFactory; 
import javax.crypto.spec.IvParameterSpec; 
import javax.crypto.spec.PBEKeySpec; 
import javax.crypto.spec.SecretKeySpec; 

public class AESTest 
{ 
    public static void main(String [] args) 
    { 
     String enc = AESEncryptToBase64("000000", "XJ5QJSVMKZGBOQO7HMSIJO5BERW2OYWDVNPM3BH32NLSWUCNJ4FIP3BML7EKUBNO"); 
     System.out.println(enc); 
    } 

    /** 
    * 
    * @param secret 
    * @param cleartext 
    * @return encrypted b64 string 
    */ 
    public static String AESEncryptToBase64(String secret, String clearText) { 
     byte[] rawKey = new byte[32]; 
     java.util.Arrays.fill(rawKey, (byte) 0); 
     byte[] secretBytes = secret.getBytes(); 
     for(int i = 0; i < secretBytes.length; i++){ 
      rawKey[i] = secretBytes[i]; 
     } 

     SecretKeySpec skeySpec = new SecretKeySpec(rawKey, "AES"); 
     try{ 
      Cipher cipher = Cipher.getInstance("AES"); 
      cipher.init(Cipher.ENCRYPT_MODE, skeySpec); 
      byte[] encryptedData = cipher.doFinal(clearText.getBytes()); 
      if(encryptedData == null) return null; 
      // return "l"; 
      return Base64.encodeBase64String(encryptedData); 
     } catch (Exception e){ 
      e.printStackTrace(); 
     } 
     return null;  

    } 
} 

컴파일하고 실행

여기

$ javac -cp "commons-codec-1.7.jar" AESTest.java 
$ java -cp "commons-codec-1.7.jar" AESTest 
Exception in thread "main" java.lang.NoClassDefFoundError: AESTest 
Caused by: java.lang.ClassNotFoundException: AESTest 

는 아파치 - 평민 - 코덱입니다 :에 http://apache.mirrors.pair.com//commons/codec/binaries/commons-codec-1.7-bin.zip

+3

classpath에'.'을 포함합니다 : java -cp ". : commons-codec-1.7.jar"AESTest " – hoaz

+0

공정하게, hoaz 코멘트가 있어야합니다. (받아 들인) 응답 :-) –

+0

어떤 Java 컴파일러를 사용하고 있습니까? 나는 당신의 오류를 1.6.0_37 –

답변

3

.을 포함하여 classpath : java -cp ".:commons-codec-1.7.jar" AESTest

이것은 JVM에게 현재 폴더의 클래스를 클래스 패스에 포함하도록 지시합니다.

관련 문제