Я создал приложение java для разбора фильмов с библиотекой mediainfo. На Windows ОС работает хорошо. В ОС Ma c: если mov ie находится на внешнем диске, он тоже хорошо работает, но если mov ie находится на "HD MA C" (например, на рабочем столе или в папке Download), он не ' t работа.
Теперь, если я запускаю свое приложение с терминальной командой java -jar <myApp.jar>
, все работает, где бы ни сохранялся mov ie. В чем разница между java -jar <myApp.jar>
и двойным кликом на .jar для запуска приложения?
Спасибо.
, если я запускаю с java -jar, у меня ошибка
Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError: java.nio.ByteBuffer.clear()Ljava/nio/ByteBuffer;
at addon.TorrentProcessor.generatePieceHashes(TorrentProcessor.java:361)
at addon.TorrentProcessor.generatePieceHashes(TorrentProcessor.java:375)
это строки
public void generatePieceHashes(TorrentFile torr) {
ByteBuffer bb = ByteBuffer.allocate(torr.pieceLength);
int index = 0;
long total = 0;
torr.piece_hash_values_as_binary.clear();
for (int i = 0; i < torr.name.size(); i++) {
total += (Integer) torr.length.get(i);//
File f = new File((String) torr.name.get(i));
if (f.exists()) {
try {
FileInputStream fis = new FileInputStream(f);
int read = 0;
byte[] data = new byte[torr.pieceLength];
while ((read = fis.read(data, 0, bb.remaining())) != -1) {
bb.put(data, 0, read);
if (bb.remaining() == 0) {
torr.piece_hash_values_as_binary.add(Utils.hash(bb.
array()));
bb.clear(); // the error is here
}
}
} catch (FileNotFoundException fnfe) {} catch (IOException ioe) {}
}
}
if (bb.remaining() != bb.capacity())
torr.piece_hash_values_as_binary.add(Utils.hash(Utils.subArray(
bb.array(), 0, bb.capacity() - bb.remaining())));
}
иначе, если я запускаю с двойным щелчком без ошибок. ?????