Не удается запустить проект Eclipse Java в коде Visual Studio (не удалось найти или загрузить основной класс)

Я хочу перейти с Eclipse на Visual Studio Code, я могу полностью открыть проект. Visual Studio Code может распознавать .classpath и наоборот.

Код Visual Studio может распознавать проект Java так же, как и Eclispse.

Затем я перехожу к java-файлу с методом Main и запускаю. Он показывает ошибку как

Error: Could not find or load main class com.untitled.game.Game Caused by: java.lang.ClassNotFoundException: com.untitled.game.Game

Я никогда не устанавливаю Code Runner, и я пытался очистить рабочее пространство, очистив рабочее пространство java-сервера, и ничего не работает. У него все еще есть такая же проблема.

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

PS. После того, как я выполнил этот инструкция., я могу создать проект Java в VS Code и работать правильно. Но если я запускаю Java-проект из Eclipse, у него все та же проблема. (java.lang.ClassNotFoundException)

Не удается запустить проект Eclipse Java в коде Visual Studio (не удалось найти или загрузить основной класс)

PS.1 Если мой проект Java не находится на диске Windows, код VS по-прежнему показывает ошибку, хотя и перенастроен .setting так же, как проект Java, только что созданный из кода VS.

VS Code не поддерживает Java без дополнительного расширения. Установили ли вы расширение для поддержки языка Java, и если да, то какие именно расширения? С Языковая поддержка Java(TM) от Red Hat вы перейдете с Eclipse на Eclipse с VS Code в качестве пользовательского интерфейса.

howlger 17.03.2022 13:02

Да, я уже установил Language Support for Java(TM) от Red Hat.

Paweenwat Maneechai 17.03.2022 17:50
Смешной (рассмотрите возможность улучшения вашего вопроса). Не игнорируйте проблему, которая показана на вашем скриншоте. Удалите файл .class в папке bin и проверьте, будет ли он воссоздан при редактировании и сохранении соответствующего файла .java. Посмотрите внутри .argfile, который содержит аргументы, включена ли папка bin в путь к классам.
howlger 18.03.2022 15:13

@howlger Я попытался удалить все файлы в папке bin и запустить снова, все равно возникает та же ошибка, и файлы class не создаются.

Paweenwat Maneechai 29.03.2022 13:07

Когда файлы .class в папке bin не создаются повторно, ваш проект настроен неправильно.

howlger 29.03.2022 13:24

Как я могу снова перенастроить проект Java Eclipse в VS Code?

Paweenwat Maneechai 29.03.2022 13:27

Создайте новый проект Java и сравните файл .project и .classpath и папку .settings с файлами существующего проекта.

howlger 29.03.2022 14:13

Наконец, я могу запустить проект Java с VS Code, но только если проект находится на диске Windows, на другом диске, таком как D :, это все равно вызывает ошибку java.lang.ClassNotFountException, потому что он создает .argfiles в папке %TEMP%, с другой стороны, недавно созданный java-проект из кода vs может работать, даже если он находится не на диске Windows или диске C :.

Paweenwat Maneechai 30.03.2022 19:12
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
8
109
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Добро пожаловать в SO. Вы только начинаете использовать vscode? Если да, проверьте, правильно ли выбран интерпретатор Java, установлены ли несколько необходимых расширений и упомянуты ли необходимые расширения в этом статья. Я надеюсь, что они могут помочь вам.

Ваша проблема решена? Я думаю, мне нужно больше информации, чтобы помочь вам справиться с проблемой

MingJie 24.03.2022 07:26

Извините, я вернулся в Eclipse на некоторое время, после того, как я выполнил этот инструкция, я могу создать проект Java в VS Code и работать правильно, но если я запускаю проект Java из Eclipse, у него все еще есть та же проблема.

Paweenwat Maneechai 29.03.2022 13:01

Думаю, можно начать с причины ошибки «ClassNotFound». Поскольку vscode может быть создан и запущен в обычном режиме, я думаю, что это может быть вызвано некоторыми различными конфигурациями между eclipse и vscode. Мы можем исключить и проанализировать их один за другим в соответствии с содержанием, представленным в этой статье: stackoverflow.com/questions/18093928/….

MingJie 30.03.2022 04:12
Ответ принят как подходящий

Наконец, я могу запустить java-проект Eclipse в vscode с настройками из папки .vscode.

Сначала откройте папку проекта Java в обычном режиме.

Затем создает папку .vscode в корне проекта и создает два файла, settings.json и launch.json.

В файле settings.json добавьте конфигурации проекта следующим образом.

{
    "java.project.sourcePaths": ["src"],
    "java.project.outputPath": "bin",
    "java.project.referencedLibraries": [
        "lib/**/*.jar"
    ]
}

Запустите проект еще раз, вы увидите ошибку, не волнуйтесь, vscode автоматически добавит конфигурацию. В файле launch.json вы увидите такие конфигурации.

{
  "configurations": [
    {
      "type": "java",
      "name": "Launch Game",
      "request": "launch",
      "mainClass": "com.untitled.game.Game",
      "projectName": "Alien Hunter",
    }
  ]
}

В случае запуска проекта, который находится за пределами диска Windows, все еще возникает ошибка, потому что он укорачивает команду -cp "path" в .argfile, которая сохраняется в папке %temp% и вызывается при запуске проекта.

Добавьте конфигурацию, чтобы решить проблему.

"shortenCommandLine": "none"

Если в Eclipse есть нативная библиотека, в случае моего проекта я использую LWJGL, я добавлю конфигурацию следующим образом.

"vmArgs": "-Djava.library.path=lib/lwjgl/native/windows"

Если у проекта есть ресурсы в другой папке за пределами папки src, например, в папке res, щелкните папку правой кнопкой мыши и выберите Add Folder to Java Source Path, проект сможет получить доступ к файлам ресурсов.

запуск.json

{
  "configurations": [
    {
      "type": "java",
      "name": "Launch Game",
      "request": "launch",
      "mainClass": "com.untitled.game.Game",
      "projectName": "Alien Hunter",
      "vmArgs": "-Djava.library.path=lib/lwjgl/native/windows",
      "shortenCommandLine": "none"
    }
  ]
}

Другие вопросы по теме