Запуск сервера Stanford CoreNLP под Windows 10 [дубликат]

Ответственность за загрузку файлов класса несет ClassLoader. Давайте посмотрим, что произойдет, когда мы напишем наши собственные классы.

Пример 1:

class StaticTest {

      static int a;
      int b;
      int c;
}

Теперь мы можем видеть, что класс «StaticTest» имеет 3 поля. Но на самом деле нет существования переменной b, c. Но почему ???. Ладно, посмотрим. Здесь b, c - переменная экземпляра. Поскольку переменная экземпляра получает память во время создания объекта. Итак, здесь b, c пока не получают никакой памяти. Вот почему не существует b, c. Итак, существует только существование a. Для ClassLoader у него есть только одна информация о. ClassLoader еще не распознает b, c, потому что объект еще не создан.

Давайте посмотрим другой пример: Пример 2:

class StaticTest {

      public void display() {
          System.out.println("Static Test");
      }


      public static void main(String []cmd) {

             display();       
      }

}

Теперь, если мы попытаемся скомпилировать этот код, компилятор даст Ошибка CE. CE: отображение нестатического метода () не может ссылаться на статический контекст.

Теперь для ClassLoader это выглядит так:

class StaticTest {

      public static void main(String []cmd) {

             display();       
      }

}

В примере 2 Ошибка CE - это потому, что мы вызываем нестационарный метод из статического контекста. Таким образом, ClassLoader не может распознавать метод display () во время компиляции. Так возникает ошибка компиляции.

18
задан neversaint 26 May 2009 в 06:11
поделиться

3 ответа

Вы превысили максимальный размер кучи своей JVM. Это зависит как от JVM, так и от ОС. В большинстве 32-битных систем максимальное значение будет 2 ГБ, независимо от доступной физической памяти.

15
ответ дан kgiannakakis 25 August 2018 в 08:40
поделиться
  • 1
    В 32-битных окнах предел ближе к 1,3 ГБ – Peter Lawrey 26 May 2009 в 07:15
  • 2
    Я получаю ошибку Invalid initial heap size: -Xms256m -Xmx512m в системе с 16 ГБ оперативной памяти (14 ГБ бесплатно) – Hack-R 21 August 2016 в 15:34

По умолчанию Java будет работать в 32-битном режиме. Не забудьте указать его -d64, чтобы поместить его в режим 64 бит. После того, как вы в 64-битном режиме, вам не составит труда выделить 6-мегабайтную JVM.

11
ответ дан brianegge 25 August 2018 в 08:40
поделиться
  • 1
  • 2
    моя проблема была решена с помощью этого параметра -d64 на Solaris Sparc 64bit с Java Runtime Environment (build 1.6.0_21-b06) Java. благодаря – mostafa.S 23 October 2016 в 13:08

На самом деле максимальный размер памяти в 32-битных системах может варьироваться, составляя до 4 ГБ, но 2 ГБ является общим значением. Часто можно перенастроить ядро, чтобы увеличить его до 3 или 3,5 ГБ. Проблема, конечно же, в том, что у вас просто нет адресного пространства, чтобы отображать больше памяти. Вы пробовали 64-битную машину?

Также не забудьте установить свой ulimit выше, прежде чем вы это сделаете.

4
ответ дан Curt J. Sampson 25 August 2018 в 08:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: