Нужны небольшие библиотеки apache.org.tika (не вся огромная вещь - tika.app.1.21.jar), чтобы исправить скорость выполнения - PullRequest
0 голосов
/ 03 июня 2019

У меня есть старая программа Netbeans, которую я давно скомпилировал. Это работает хорошо. Я хочу, чтобы это работало лучше. Одним из аспектов программы является то, что она имеет код (который использовался) для поиска строки в файлах, которые «напоминают текстовые» файлы ( .doc , * .txt, * .pdf, возможно, больше). Изменяя код несколько месяцев или лет назад, я «сломал» следующие операторы import, которые, в свою очередь, сломали код, который ссылается на импорт:

import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.mime.MimeTypeException;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.sax.BodyContentHandler;

Ошибка: «Пакет org.apache.tika._______ не существует».

Импорт используется для того, чтобы приведенный ниже код находил файлы, содержащие, например, слово «crud»:

public static boolean objectFilecontainsObjectString(File file, String s)
  throws FileNotFoundException, MalformedURLException,IOException,
         MimeTypeException,SAXException, TikaException
      {
        InputStream         stream    = new FileInputStream(file);
        AutoDetectParser    parser    = new AutoDetectParser();
        BodyContentHandler  handler   = new BodyContentHandler(-1);
        Metadata            metadata  = new Metadata();
        try
        {
          parser.parse(stream, handler, metadata);
          return handler.toString().toLowerCase().contains(s.toLowerCase());
        }
        catch (Exception e)
        {
          txaErrorsAppend("`contains() error for <" + file + ">: " + e + "\n");
          return false;
        }
        finally{  stream.close();  }
      }

(Множество жизненных сложностей не позволяло мне следовать в обратном направлении, когда я несколько отвлекался, изменяя и непреднамеренно нарушая рабочий код в самое неподходящее время.)

Я думаю, что все, что мне нужно сделать, это добавить Library (или два или около того), которые содержат не намного больше, чем tika подпрограмм, которые я пытаюсь импортировать , и поэтому не будут много МБ в размере .

Вот что я пробовал. Ошибок больше нет, но это slooooooooow.

Я зашел на http://www.apache.org/dist/tika/ и нашел кучу 1.21 файлов, без сомнения, самый последний. Но все файлы .jar имеют размер от 47 МБ до 73 МБ. Мой скомпилированный файл .jar достаточно мал, но файл библиотеки может быть 73 МБ или 47 МБ. Что-то значительно замедляет исполнение. Я предполагаю размер библиотеки. (Если я НЕ ищу строку, выполнение в порядке. Добавление objectFilecontainsObjectString в микс убивает скорость выполнения.)

Давным-давно, когда я смутно припоминаю, я нашел несколько небольших библиотек (.jars), которые минимизировали размер файла моей скомпилированной библиотеки. Но где они сегодня?

Любая помощь, направившая меня к одной или нескольким "маленьким" библиотекам tika или .jar файлам, из-за которых мой конечный файл .jar будет размером менее 1 МБ и создаст файл библиотеки размером менее 47 МБ, будет принята с благодарностью.

...