- Я создаю сообщение runnable jar из содержимого проекта Eclipse.
- Когда я использую Eclipse IDE для создания работоспособного jar, это работает.
- Когда яиспользуйте функции java.util.zip.* для создайте работоспособный jar-файл, он
не работает. - Когда я сравниваю два файла в проводнике Windows, они идентичны.
- br />Когда я извлекаю zip-файлы и сравниваю полученное содержимое на диске (с помощью WinMerge), они идентичны.
Вот фрагмент кода, который я использую. Не полная реализация, только самое интересное:
Код: Выделить всё
ZipInputStream zin = new ZipInputStream(new FileInputStream(tempFile));
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFile));
for (int i = 0; i < fileList.length; i++) {
InputStream in = new FileInputStream(fileList[i]);
String absoluteFileNameString = fileList[i].getAbsolutePath();
if (baseDirectory != null && baseDirectory.length() > 0 && absoluteFileNameString.length() > (baseDirectory.length() + 1) ) {
absoluteFileNameString = absoluteFileNameString.substring(baseDirectory.length() + 1);
}
out.putNextEntry(new ZipEntry(absoluteFileNameString));
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.closeEntry();
in.close();
}
out.close();
Код: Выделить всё
C:\Users\Owner\git\runnablejarbuilder\RunnableJarBuilder>java -jar RunnableJarBuilder.zip
Error: Could not find or load main class com.rjb.test.HelloRun
Caused by: java.lang.ClassNotFoundException: com.rjb.test.HelloRun
C:\Users\Owner\git\runnablejarbuilder\RunnableJarBuilder>java -jar RunnableJarBuilderIDE.zip
Hello Runnable Jar!

Подробнее здесь: https://stackoverflow.com/questions/792 ... -find-or-l