源代码:
import java.security.*;
import javax.crypto.*;
import java.io.*;
public class StreamIn{
public static void main(String args[]) throws Exception
{
FileInputStream f=new FileInputStream("key1.dat");
ObjectInputStream ob=new ObjectInputStream(f);
Key k=(Key)ob.readObject();
Cipher cp=Cipher.getInstance("DESede");
cp.init(Cipher.DECRYPT_MODE,k);
FileInputStream in=new FileInputStream(args[0]);
CipherInputStream cin=new CipherInputStream(in,cp);
int b=0;
while((b=cin.read())!=-1)
{
System.out.print((byte)b+" ,");}
}
}
编译都成功,
运行报错,
C:\>java c:\StreamIn stream.txt
Exception in thread "main" java.lang.NoClassDefFoundError: c:\StreamIn
后来我把args[0]改成stream.txt但是什么也不显示
怎么回事

解决方案 »

  1.   

    你的 key1.dat 文件里面存的是什么东西啊?从程序上看,好像是要从里面取出一个 Key 对象。readObject() 会读取 key1.dat 文件的内容,然后实例化一个对象出来,这时候,你运行程序的 classpath 里面要有这个对象所需的所有 class(注意是*所有*的 class)
      

  2.   

    key1.dat放的是key啊,放在同一目录下
      

  3.   

    java.security.Key 只是一个接口,你的 key1.dat 里存的对象应该具有某个实现类,比如 org.bouncycastle.jce.provider.JCERSAPublicKey,这样的话,你的 classpath 里就应该包含这个实现类(甚至相关的其它一些 class),这就是我说的*所有*的 class。
      

  4.   

    我 key1.dat 里放的是密钥,大家看看如何修改!