Так что я почти уверен, что выглядел так же хорошо, как мог, прежде чем задавать этот вопрос, так что здесь.
Я пишу Java-класс для шифрования RC4, я хотел бы использовать класс Files в Google Guava. Я компилирую, используя javac в командной строке Ubuntu. Я пытаюсь связать файл jar, guava-10.0.1.jar "с моим классом, но безуспешно.
Это фрагмент сверху:
import java.util.*;
import java.io.*;
import com.google.common.io.*;
class rc4 {
private static int S[] = new int[256];
private static int kLen;
public static void main(String[] args) {
...
Строка, специфичная для того, что я называю, выглядит следующим образом, полностью в блоке try:
byte plain[] = Files.toByteArray(file);
Затем я скомпилирую это:
$ javac -cp FULL/FILE/PATH/guava-10.0.1.jar rc4.java
Он компилируется, но когда я пытаюсь запустить java rc4 с опциями, которые я определил для доступа к функции, я получаю ошибку:
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/io/Files
at rc4.main(rc4.java:58)
Caused by: java.lang.ClassNotFoundException: com.google.common.io.Files
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 1 more
Я пробовал несколько разных вызовов и проверил банку, чтобы убедиться, что она не банку, не банку, не банку и т. Д. Затем я попытался использовать файл манифеста:
Manifest-Version: 1.0
Created-By: me
Main-Class: rc4
Class-path: /FULL/FILE/PATH/guava-10.0.1.jar
А затем создайте банку как таковую:
jar cvf0m rc4.jar manifest.txt rc4.class
и затем запустите его с:
java -jar rc4.jar
, с которой я получаю ту же ошибку, что и выше, но там говорится, что «rc4» не может быть найден.
Итак, я немного потерян для того, что мне не хватает. Я все еще немного знаком с Java, поэтому, если я упускаю какую-то огромную, очевидно, базовую необходимость, я искренне извиняюсь за недосмотр, но если кто-то может предложить мне некоторую помощь в этом, я был бы очень признателен.