【发布时间】:2016-04-22 05:38:49
【问题描述】:
请帮我找出错误。 我有一个类文件。我取这个类的一个字节码并用凯撒密码加密它。我有几个命令提示符参数:
- 类文件:我们对其进行加密,
- 类文件:输出将在其中传输
- key:我们添加到每个字节码的数字 第一个参数。
我只想用零密钥加密第一个参数,输出将传输到第二个参数,然后我想运行第二个文件(第二个参数)。
我编译:
javac Caesar.java
运行:
java Caesar HelloWorld.class Hello1.class 0
(注意 - 我使用零键,所以文件不应该被更改)
然后运行第二个文件,我看到了这样的错误:
julia@julia-Aspire-5680 ~/zagruzchik $ java Hello1 中的异常 线程“主”java.lang.NoClassDefFoundError:Hello1(错误名称: HelloWorld) 在 java.lang.ClassLoader.defineClass1(Native Method) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:800) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:71) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:361) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:425) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:358) 在 sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
我的源代码:
import java.io.*;
import static java.lang.System.out;
/**
encript by caesar chipher
*/
public class Caesar {
public static void main(String[]args) {
if (args.length == 3)
{
}
else {
System.out.println("USAGE: java Caesar in out key");
return;
}
try ( //class which will be ciphered
FileInputStream in = new FileInputStream(args[0])) {
//in output will go encripted byte code of file
FileOutputStream out = new FileOutputStream(args[1]);
//this is key
int key = Integer.parseInt(args[2]);
int ch;
//in cycle encript byte code
while ((ch = in.read()) != -1) {
byte c = (byte)(ch + key);
out.write(c);
}
}
catch(IOException exception)
{
}
out.close();
}
}
【问题讨论】:
-
您的代码目前在括号使用方面不正确。我试图格式化它,但这条线导致了一个问题,我不确定你在哪里
{应该去:try ( //class which will be ciphered
标签: java load bytecode caesar-cipher