WAMP работает нормально, пока я не перезагружу свой компьютер [дубликат]

Когда вы объявляете ссылочную переменную (т. е. объект), вы действительно создаете указатель на объект. Рассмотрим следующий код, в котором вы объявляете переменную примитивного типа int:

int x;
x = 10;

В этом примере переменная x является int, и Java инициализирует ее для 0. Когда вы назначаете его 10 во второй строке, ваше значение 10 записывается в ячейку памяти, на которую указывает x.

Но когда вы пытаетесь объявить ссылочный тип, произойдет что-то другое. Возьмите следующий код:

Integer num;
num = new Integer(10);

Первая строка объявляет переменную с именем num, но она не содержит примитивного значения. Вместо этого он содержит указатель (потому что тип Integer является ссылочным типом). Поскольку вы еще не указали, что указать на Java, он устанавливает значение null, что означает «Я ничего не указываю».

Во второй строке ключевое слово new используется для создания экземпляра (или создания ) объекту типа Integer и переменной указателя num присваивается этот объект. Теперь вы можете ссылаться на объект, используя оператор разыменования . (точка).

Exception, о котором вы просили, возникает, когда вы объявляете переменную, но не создавали объект. Если вы попытаетесь разыменовать num. Перед созданием объекта вы получите NullPointerException. В самых тривиальных случаях компилятор поймает проблему и сообщит вам, что «num не может быть инициализирован», но иногда вы пишете код, который непосредственно не создает объект.

Например, вы можете имеют следующий метод:

public void doSomething(SomeObject obj) {
   //do something to obj
}

В этом случае вы не создаете объект obj, скорее предполагая, что он был создан до вызова метода doSomething. К сожалению, этот метод можно вызвать следующим образом:

doSomething(null);

В этом случае obj имеет значение null. Если метод предназначен для того, чтобы что-то сделать для переданного объекта, целесообразно бросить NullPointerException, потому что это ошибка программиста, и программисту понадобится эта информация для целей отладки.

Альтернативно, там могут быть случаи, когда цель метода заключается не только в том, чтобы работать с переданным в объекте, и поэтому нулевой параметр может быть приемлемым. В этом случае вам нужно будет проверить нулевой параметр и вести себя по-другому. Вы также должны объяснить это в документации. Например, doSomething может быть записано как:

/**
  * @param obj An optional foo for ____. May be null, in which case 
  *  the result will be ____.
  */
public void doSomething(SomeObject obj) {
    if(obj != null) {
       //do something
    } else {
       //do something else
    }
}

Наконец, Как определить исключение & amp; причина использования Трассировки стека

36
задан RiggsFolly 24 June 2014 в 09:07
поделиться

11 ответов

Прежде чем вы сможете исправить что-либо, вам нужно знать, какая служба еще не запущена, Apache или MySQL.

Поскольку утилита TEST PORT 80 говорит, что Apache запускает, вероятно, службу MySQL, которая еще не началась. Если у вас нет другого запуска Apache!

Итак, какая служба не началась ???

Если значок wampmanager не является ЗЕЛЕНЫМ, тогда одна из служб (Apache / MySQL) не началась

Как узнать, какая служба не запущена, если значок wampmanager оранжевый.

Щелкните левой кнопкой мыши по значку wampmanager, чтобы открыть меню-> Apache -> Сервис. Если Start / Возобновить сервисное меню - зеленый, а затем Apache НЕ работает .

Щелкните левой кнопкой мыши по значку wampmanager, чтобы открыть меню-> MySQL -> Сервис. Если в меню «Пуск / возобновление» указано «Зеленый», MySQL НЕ работает .

Если Apache - это служба, которая не работает, это обычно, но не всегда, потому что что-то еще захватило порт 80.

Теперь сделайте это, щелкните левой кнопкой мыши по значку wampmanager, чтобы открыть меню -> Apache -> Сервис -> тестовый порт 80. Это запустит окно команд и отобразит некоторую информацию о том, что, если что-то использует порт 80.

Что бы это ни было, нужно перенастроить, чтобы не используйте порт 80 или удалите его, если вы его не используете.

Если порт 80 не является проблемой, найдите ошибки в соответствующем журнале ошибок (используйте меню диспетчера Wamp для просмотра журналов ошибок)

Если они не существуют или не показывают ошибок, также проверяйте средство просмотра событий Windows Start -> Administrative Tools -> Event Viewer. Посмотрите в разделе «Журналы Windows» -> Приложение », доступ к которому находится в меню слева от диалоговое окно для сообщений об ошибках из Apache и MySQL.

Если его MYSQL, который еще не запущен.

Проверьте журнал ошибок mysql с помощью меню

wampmanager->MySQL->error log

Проверьте журнал событий Windows для сообщений из MYSQL

Убедитесь, что у вас нет другого экземпляра сервера MYSQL.

Как настроить SKYPE, чтобы он не требовал порт 80 или 443

Запустите SKYPE, затем с помощью меню сделайте следующее: Инструменты -> Параметры -> Дополнительно -> Соединение Отключить флажок рядом с «Использовать порты 80 и 443 в качестве альтернативы для подключения соединений». Теперь перезапустите SKYPE для эти изменения вступят в силу.

Если вы используете Windows 8, SKYPE поставляется в виде приложения, и это невозможно (пока) настроить таким образом. Однако если вы удалите приложение SKYPE и установите SKYPE по-старому, вы можете перенастроить его, и он работает так же хорошо.

122
ответ дан RiggsFolly 19 August 2018 в 11:33
поделиться
  • 1
    Спасибо за помощь. Я нашел проблему после небольшого исследования после публикации этого вопроса. Это был сервис MySQL, который не запускался должным образом, поскольку у меня был установлен клиент MySQL, который Wamp не поддерживал его версию. Я загрузил надстройку MySQL с веб-сайта Wamp и установил его, и это сделало трюк. – Jethro 10 February 2014 в 16:04
  • 2
    Просто узнал о Event Viewer из Windows, очень полезен! спасибо – CatalinBerta 10 March 2015 в 15:11
  • 3
    Если в меню «Службы Apache» нет способа щелкнуть по началу или остановке службы, вам, скорее всего, нужно нажать «Установить службу», - Это заставило меня бежать! – James Wilson 17 November 2015 в 15:35
  • 4
    Очень полезно. Обратите внимание, что в окнах 10 порт 80 используется сервером IIS. Все объяснено в этом потоке stackoverflow.com/questions/30758894/… – PIIANTOM 26 September 2016 в 21:33
  • 5
    Event Viewer решил это для меня, большое спасибо за вашу помощь! – Adrian Pauly 2 November 2016 в 17:03

Если вы используете wampserver 3 (рекомендуется, обычно не работает конфигурация)

  • щелкните значок wampserver> apache> администрирование службы> установка службы
  • щелкните значок wampserver> mysql> сервисное администрирование> установить службу
  • щелкнуть значок wampserver> mariadb> администрирование службы> установить службу
  • щелкнуть значок wampserver> перезагрузить все службы

если это не исправить, попробуйте:

  • щелкните правой кнопкой мыши значок wampserver> Инструменты> Проверить синтаксис httpd.conf (затем исправить проблему, которую он идентифицирует и перезапустить все службы, вероятно, это плохой синтаксис на ваших виртуальных хостах файл)
  • щелкните правой кнопкой мыши значок wampserver> Инструменты> тестовый порт 80 (вы, вероятно, включили скайп или что-то еще, выключите его и перезапустите все службы)

Если это не исправить, возможно, конфликт окон:

Если это не исправить:

  • щелкните правой кнопкой мыши erver icon> инструменты проверяют все те, которые используются для подсказок
1
ответ дан Andrew 19 August 2018 в 11:33
поделиться

Чтобы добавить к предыдущему сообщению ^^:

Если какая-либо из служб не запущена, это может просто быть просто потому, что их нужно установить / настроить. Это легко сделать прямо из значка WampManager. Если Apache не запущен:

 WampManager Icon -> Apache -> Service -> Install Service

Вы должны получить всплывающее окно командной строки, если порт 80 свободен (если нет, см. Выше сообщение):

      'Your port 80 is available. Install will proceed.

       Press Enter to continue...'

Если MySQL не запущен:

WampManager Icon -> MySQL -> Service -> Install Service

Сделайте это для одной или обеих служб, тогда:

WampManager Icon -> Restart All Services

Значок теперь станет зеленым:)

62
ответ дан elektrykalAJ 19 August 2018 в 11:33
поделиться
  • 1
    Это решение работало для меня: D Followed & quot; If apache not running & quot ;. И это сработало. – Gereltod 12 November 2014 в 19:48
  • 2
    Большое спасибо! Я установил обе службы и нажал кнопку «Перезапустить все службы»; в меню WAMP. WAMP перезапущен с зеленым значком. – Lil' Bits 25 February 2015 в 01:10
  • 3
    Это сработало для меня. Благодаря! – Tony Brasunas 2 June 2015 в 01:25
  • 4
    это не сработало для меня, так как в моем случае MYSQL не работает – Prince Vijay Pratap 7 August 2015 в 10:15
  • 5
    Спасла мою жизнь – Stranded Kid 9 December 2015 в 22:58

Это может произойти по одной из трех причин: -

1) Отсутствует установка VC ++: Установите все версии пакетов перераспределения VC ++ VC9, VC10, VC11, VC13, VC14 и VC15. См. Ссылку, указанную в конце для ссылки для загрузки. Если у вас 64-разрядная Windows, вы должны установить как 32, так и 64-битные версии каждого пакета VisualC ++, даже если вы не используете бит Wampserver 64.

2) Вы забыли предоставить права администратора на WAMP Server : Запуск и установка с параметром «Запуск от имени администратора» очень важны.

3) WAMP, IIS и Skype сражаются за один и тот же порт:

0
ответ дан Hitesh Sahu 19 August 2018 в 11:33
поделиться
  • перейти к C: \ wamp \ bin \ mysql \ mysql5.6.17
  • искать «my.ini»; щелкните правой кнопкой мыши, чтобы отредактировать его, используя свой любимый редактор (notepad ++, jedit & hellip;)
  • найдите 3306 и измените его на 3307
  • , перезагрузите все службы, и он должен работать: )
0
ответ дан Nathan Tuggy 19 August 2018 в 11:33
поделиться

Диск сервера Wamp сервера "C://", если вы не используете его на другом диске для ex G://: перейдите к

  1. g:\\wamp\bin\apache\apache2.4.9\bin\

2.call cmd

3 .execute httpd.exe -t

вы увидите ошибки

  1. перейти к g:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-autoindex.conf
  2. изменить в строке 23 на:

Alias /icons/ "g:/Apache24/icons/"

<Directory "g:/Apache24/icons">
    Options Indexes MultiViews
    AllowOverride None
    Require all granted
</Directory>
  1. Перезапустить Все услуги. Готово. Решено
4
ответ дан NickUnuchek 19 August 2018 в 11:33
поделиться
  • 1
    да это наиболее полезно – Andrew 21 November 2016 в 19:24
  • 2
    эй, спасибо за решение. ключ должен был выполнить файл httpd.exe. то он показывает, чего не хватает. В моем случае были некоторые папки внутри www-папки, которые я удалил, и забыл удалить директивы на httpd-vhosts.conf [C: \ wamp \ bin \ apache \ apache2.2.22 \ conf \ extra]. затем я удалил эти директивы [тег VirtualHost] в httpd-vhosts, и все. – Raimundo Yabar 20 July 2017 в 16:33

Если вы установили как Wampmanager, так и боковую стопу Bitnami на ваш Windows-бокс (например, я сделал), убедитесь, что Bitnami не был настроен автоматически запускать свои службы wampstackApache и wampstackMySQL при запуске.

Чтобы проверить / исправить это, нажмите: Пуск -> Выполнить, а затем введите services.msc и нажмите «ОК».

Выберите Службы в списке слева и выполните сортировку служб по имени. Выделите «w». Если службы wampstackApache и / или wampstackMySQL уже запущены, щелкните правой кнопкой мыши и остановите оба. Затем перезапустите все службы из значка Wampmanager W в лотке служб Windows.

Если это была ваша проблема, вы можете изменить поведение запуска по умолчанию на ручной запуск wampstackApache и wampstackMySQL на вкладках «Свойства».

0
ответ дан Ralph Frost 19 August 2018 в 11:33
поделиться

Я столкнулся с этой же проблемой сегодня утром, но ни один из ответов выше не предоставил мне решение.

В конце концов я понял, что проблема связана с тем, что я изменил DocumentRoot на подпапку каталога www , так как раньше я работал над проектом Symfony2 внутри www.

С новым проектом, над которым я работаю внутри www, этот старый каталог DocumentRoot больше не существует, поэтому Apache не смог запустить.

wampserver -> Apache -> httpd.conf, затем найдите «DocumentRoot» и убедитесь, что каталог, на который указывает он, или изменит его на тот, который делает.

Спасибо RiggsFolly, это был из-за вашего намека на просмотр событий выше, что я нашел проблему.

6
ответ дан SteveW 19 August 2018 в 11:33
поделиться
  • 1
    Я переместил свой локальный репозиторий на c: \ wamp \ www, чтобы я мог тестировать AJAX последовательно. Забыл изменить DocumentRoot! – Kirk Powell 26 February 2016 в 22:44

ПОЖАЛУЙСТА ЗАМЕТЬТЕ! Если вы прошли через все вышеперечисленное, например «Я», и все еще получают значок Orange, а когда вы тестируете порт 80, вы получаете «Apache», посмотрите файл: c: / wamp / bin / apache / apache2.4.9 / conf / httpd.conf (ваш номер версии Apache может отличаться).

В файле о строке # 62 вы найдете примечание, в котором говорится:

Слушайте 0.0.0.0:80 Слушайте [:: 0]: 80

Почему?

Измените это, чтобы прослушивать определенные IP-адреса, как показано ниже, чтобы предотвратить использование Apache все связанные IP-адреса.

Я изменил это, чтобы соответствовать моему IP-адресу localhost, и когда я перезапустил Wamp, он быстро перешел от Red to Green. Успех! ... через 3 часа ....

1
ответ дан Thomas Garrison 19 August 2018 в 11:33
поделиться

После удаления innodb_additional_mem_pool_size = 4M из my.ini и убийства этого процесса, который использовал порт, который захотел Mysql, мне удалось это сделать.

Рекомендуемое исправление: 1) Быстрое решение: Комментировать строку innodb_additional_mem_pool_size = 4M в файле my.ini службы, 2) исключить опцию из конфигурационного файла по умолчанию 5.7.4 или 3) un-unknow the variable to mysql;)

ссылка: http : //bugs.mysql.com/bug.php? id = 72533

Используйте номер 1, удалите всю строку. Сохранить в my.ini. Убейте процесс, если у вас есть один запуск (посмотрите на них с resmon.exe и убейте их командой taskkill / pid pid-of-process / f), затем запустите wampmysql, и ваш значок станет зеленым.

С уважением SB

0
ответ дан user3050538 19 August 2018 в 11:33
поделиться
0
ответ дан Ram Chandran 30 October 2018 в 23:49
поделиться
Другие вопросы по тегам:

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