Пожалуйста, помогите найти ошибку. У меня есть файл класса. Я беру байтовый код этого класса и шифрую его с помощью шифрования Цезаря. У меня есть несколько аргументов командной строки:Encript and load file
- файл класса: который мы зашифровать,
- файла класс: в котором выходной сигнал будет передавать
- ключа: номер, который мы добавим к каждому числу байт коды первый аргумент.
Я хочу просто зашифровать первый аргумент нулевым ключом, вывод передаст второй аргумент, а затем я хочу запустить второй файл (второй аргумент).
компилировать:
javac Caesar.java
Пробег:
java Caesar HelloWorld.class Hello1.class 0
(внимание - я использую нулевой ключ, поэтому файл не должен быть изменен)
И запустить второй файл, И я вижу такую ошибку:
[email protected] ~/zagruzchik $ java Hello1 Exception in thread "main" java.lang.NoClassDefFoundError: Hello1 (wrong name: HelloWorld) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at 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 (// класс, который будет зашифрован) – Draken