Проблема запуска виртуальной машины Java - PullRequest
0 голосов
/ 24 марта 2011

HI All,

У меня возникла проблема, внезапно Java перестала работать полностью. Я начинаю получать сообщение об ошибке типа «Не удалось создать виртуальную машину». Нет проблем с памятью (она имеет 3 ГБ ОЗУ), и она нормально работала более 6 месяцев в этой системе без каких-либо проблем.

Вот некоторые особенности поведения -

  1. Когда я начинаю затмение, я вижу диалоговое окно виртуальной машины Java с сообщениями об ошибках типа
    «Не удалось найти основной класс org.eclipse ...... support.legacysystemproperties»

  2. Eclipse может запуститься (с указанной выше ошибкой), но при запуске программы в диалоговом окне появляется сообщение об ошибке «Не удалось создать виртуальную машину Java», и после нажатия кнопки «ОК» в этом диалоговом окне я смотрите ошибку типа "нераспознанная опция -dfile.encoding = cp1252

  3. Я использовал текстовый редактор, написал класс Test.java (без какого-либо пакета), скомпилировал его ( Edit # 1: javac Test.java). Но когда я запускаю программу ( Edit # 1: java Test), я получаю следующую ошибку - Исключение в потоке "main" java.lang.NoClassDefFoundError: test (неправильное имя: Test).

Редактировать # 1: Примечание. Скомпилированный файл Test.class успешно создан в каталоге. Я перепроверил переменные окружения path и classpath. Все кажется правильным.

Пожалуйста, обратите внимание, что, похоже, есть некоторые проблемы со случаями, которые влияли на Java.

Я удалил Java (все версии), переустановил, но ничего не помогло. Кроме того, я запустил CCleaner для очистки реестра, Malwarebytes 'Anti-Malware, но пока ничего не помогло.

Спасибо, если кто-то может помочь мне решить проблему.

Я гуглил по этому поводу и обнаружил, что некоторые сталкивались с похожими проблемами, но ни один из них не нашел решения, кроме как некоторым предложением переустановить саму ОС Windows, чего я хочу избежать. Я сделал восстановление системы, но это не удалось для некоторых других причина.

Обратите внимание, что я использую Java более 10 лет. Это впервые у меня такая проблема. Это как-то связано с реестром Windows или какой-либо другой конфигурацией системы, но я не могу выяснить точную проблему.

В любом случае, ожидаю хорошего предложения.

1 Ответ

0 голосов
/ 24 марта 2011

РЕДАКТИРОВАТЬ: Хорошо, похоже, исполняемый файл Java получает аргументы командной строки в нижнем регистре.

Шаг 1: Проверка

Вы можете дважды проверить, влияет ли это на все аргументы командной строки путем создания класса с именем в нижнем регистре, который просто выводит свои аргументы:

public class test {
    public static void main(String[] args) {
        for (String arg : args) {
            System.out.println(arg);
        }
    }
}

Скомпилируйте и запустите его с различными входными данными.

Шаг2. Проверьте область действия

Предполагая, что шаг 1 подтверждает проблему, если у вас установлен .NET, вы можете увидеть, влияет ли он и на это.Создайте файл Test.cs:

using System;

class Test
{
    static void Main(string[] args)
    {
        foreach (string arg in args)
        {
            Console.WriteLine(arg);
        }
    }
}

Скомпилируйте его с помощью "csc Test.cs", найдя csc в каталоге .NET Framework (например, в c: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 для .NET 4).

Запустите его так:

Test foo BAR Baz

и посмотрите, что произойдет

Шаг 3: Если Шаг 2 показалчто проблема ограничена java.exe:

  • Проверьте свой путь и определите, где вы * запускаете java.exe из
  • Попробуйте явно запуск java.exe из вашего каталога JRE или JDK
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...