Com company main java

Блог

Докер не может найти мои файлы .java в настройках проекта IntelliJ

#java #docker #intellij-idea #dockerfile

Вопрос:

Я хочу создать образ докера для всего проекта (основной класс принимает входные данные из driver-info.txt файл в корневой папке) и переместите его в Docker Hub.

Я создал файл Dockerfile без расширения файла в корневой папке, и внутри него я вставил (это взято непосредственно из моего материала курса):

 FROM openjdk:11 WORKDIR /app COPY . /app RUN javac *.java CMD java Main 

Затем я зашел в командный терминал и на компакт-диске в корневой каталог этого проекта (т. Е. C:UsersUser-PCIdeaProjectsTask_11_Capstone>). Там я набрал (также непосредственно вставленный из моего материала курса):

Он строит шаги 1 и 2, но выдает ошибку на шаге 3, говоря:

 => ERROR [4/4] RUN javac *.java 0.4s ------ > [4/4] RUN javac *.java: #8 0.363 error: file not found: *.java #8 0.363 Usage: javac  #8 0.363 use --help for a list of possible options ------ executor failed running [/bin/sh -c javac *.java]: exit code: 2 

Я считаю, что существует проблема с поиском Докером моих файлов java в папке src/com/company (см. Изображение, которым я поделился относительно структуры файлов проекта). Я попытался изменить имя пути и попытался использовать полное имя, основанное на других статьях о StackOverflow. Но все они выдают мне одно и то же сообщение об ошибке.

Я также попытался найти файл Dockerfile в папке src/com.company рядом с другими классами. Но затем он преобразует инструкцию Dockerfile «КОПИРОВАТЬ», чтобы сказать COPY ../../.. /app . Что я считаю правильным, потому что я действительно хочу скопировать все элементы, включая файлы .txt в корневой папке, в свое изображение.

Читайте также:  Php arr to string

Затем я помещаю компакт-диск в папку, в которой сейчас находится файл Dockerfile (т. Е. C:UsersUser-PCIdeaProjectsTask_11_Capstonesrccomcompany) для создания образа. Правильно ли это или мне следует оставаться в корневой папке проекта? Во всяком случае, выполнение этого таким образом позволяет мне успешно создавать образ. (Я думаю — это то, что это показывает).

Однако, когда приходит время запускать изображение, я снова застреваю. Я набираю следующее в командной строке (взято непосредственно из моего материала курса):

И это дает мне это сообщение об ошибке:

 Error: Could not find or load main class Main Caused by: java.lang.NoClassDefFoundError: com/company/Main (wrong name: Main) 

Другими словами, если я помещу файл Dockerfile прямо туда, где находятся файлы java, он все равно не сможет их найти.

Я попробовал форум Docker Hub, Stackoverflow, получил более 10 писем с поддержкой IntelliJ и сделал скриншот с моим наставником по курсу, мы просто не можем понять, почему он не запускается. Я также удалил Docker и переустановил его, а также создал версию своего проекта без пакета com.company.

Кроме того, мне успешно удалось создать, запустить и продвинуть другие образы Docker, в частности веб-сайт и простую программу на Java. Однако только при попытке сделать это в моем проекте в IntelliJ у меня возникают эти проблемы. Возможно, стоит отметить, что это также репозиторий Git, подключенный к GitHub.

Есть идеи, что я мог бы попробовать дальше?

Комментарии:

1. Я думаю, что вы все путаете, и вам не хватает некоторых основ. Вы должны понимать, что такое пакеты для xample, и это com.company.Main нечто иное, чем именованный класс Main . Это также означает, что вы не понимаете, что такое путь к классу. Итак, для меня это звучит так, как будто вы должны сначала изучить все такие основы java, прежде чем добавлять эту дополнительную сложность образа docker.

2. у вас действительно есть файл с именем * ? javac *.java ищет файл с именем *.java, а не «все файлы с расширением .java».

3. Другая часть: любой реалистичный проект в реальном мире должен быть построен просто с использованием javac *.java … вы бы предпочли использовать такой инструмент, как gradle или maven. И такие инструменты часто поддерживают превращение доставок в образы докеров, просто говоря. Вы пытаетесь изобрести колеса здесь …

4. И обратите внимание: если вы придерживаетесь своего подхода, сначала сделайте это без докера. Значение: просто напишите сценарий оболочки для запуска javac и запустите свой код. Как уже было сказано: вы уже неправильно поняли ЭТИ основные вещи из командной строки. Нет смысла спрашивать «как мне жонглировать во время езды на велосипеде» … когда уже одно только жонглирование доставляет вам неприятности.

5. Привет @Stultuske о, я вижу, я думал, что использование * похоже на заполнитель для всех . файлы java. У меня есть около 5 файлов с расширениями .java, но все они имеют разные имена. Должны ли они быть перечислены один за другим при компиляции?

Ответ №1:

Попробуйте изменить команду RUN и CMD в файле Dockerfile на

 RUN javac com/comapny/*.java CMD java -cp . com.company.Main 

Я предполагаю, что основное находится под пакетом com.company

Источник

Не получается запустить java программу с консоли

Потом добавил в переменную среды пользователя Path путь C:\Program Files\Java\jdk-13.0.1\bin, и в системную переменную Path пути: C:\Program Files\Java\jdk-13.0.1\bin и C:\Program Files\Java\jdk-13.0.1\lib. Также я создал в системных переменных переменную CLASSPATH и прописал ее значение: C:\Users\User\IdeaProjects\. (т.е. место, где я храню свои проекты Intellij IDEA).

Запускаю консоль в папке, где находится мой файл Main.java (вот ее путь C:\Users\User\IdeaProjects\JavaApp\src\com\company), делаю

C:\Users\User\IdeaProjects\JavaApp\src\com\company>java Main //я ввел java Main Error: Could not find or load main class Main //вот это уже ошибка Caused by: java.lang.NoClassDefFoundError: com/company/Main (wrong name: Main)

Не получается запустить из консоли
Здравствуйте, есть такой вопрос. Есть класс, синтаксически правильный(в IDEA без проблем.

Как запустить программу из консоли без блокировки консоли?
Вводу например firefox в консоль открывается приложение и в консоль больше ничего ввести нельзя.

Не получается запустить код Java
Люди, срочно потребовалось сделать перебор всех возможных вариантов сочетаний букв алфавита.

Эксперт PythonЭксперт Java

У меня огромная разница. У меня Main лежит в C:\Users\User\IdeaProjects\JavaApp\src\com\company. Если я компилирую в папке src, у меня выдаст ошибку.

C:\Users\User\IdeaProjects\JavaApp\src>javac com.company.Main //я написал javac com.company.Main error: Class names, 'com.company.Main', are only accepted if annotation processing is explicitly requested 1 error
C:\Users\User\IdeaProjects\JavaApp>javac Main.java error: file not found: Main.java Usage: javac options> source files> use --help for a list of possible options

Понимаешь, чтобы скомпилировать файл, нужно указать его имя. Без пакета, понимаешь. Но компилятору неизвестно, что за файл ты хочешь скомпилировать, поэтому надо либо указывать путь до этого файла, либо компилировать в папке, где лежит этот самый файл

По-другому обстоит ситуация с файлом класса, который ты хочешь запустить. Пакет — это не просто папки, в которых лежит файл класса, — это часть его имени. Поэтому если ты просто пытаешься запустить файл Main, то он, разумеется, его не находит, ибо полное имя класса Main — com.company.Main . Соответственно, нужно запускать мэин из директории, в которой лежит папка com той командой, что я писал прежде

Что-то понял, но вот еще кое-что)

Посмотри пожалуйста еще, я нашел такую инфу: «Переходим в каталог, где лежит данный файл, и выполняем команды.
javac HelloWorld.java» Как мы можем это сделать из каталога, если нам нужно делать прямо из папки, где лежит файл?

ЦитатаСообщение от iSmokeJC Посмотреть сообщение

Эксперт PythonЭксперт Java

Эксперт PythonЭксперт Java

Знаешь, проблема в том, что ты относишь процесс компиляции к оккультным искусствам. Дело в том, что никакой магии в действительности не происходит, и зачастую происходящее можно понять умом. Ты говоришь, будто что-то понял, но ты просто выкинул какую-то идею, даже не подумав, имеет ли она хоть какой-то смысл. Прочитай внимательно, потом проверь, как и что работает. Что-то не получается? Значит ты что-то не понял. Попробуй иначе, снова. По-прежнему не получается? Почитай ещё. И так до тех пор, пока ты не дойдёшь до состояния полного отчаяния и возможность нахождения ответа будет представляться тебе лишь далёким отблеском света во тьме, кажущимся таким близким, но в тоже время абсолютно недостижимым. И вот только тогда, только в такой ситуации тебе следует лезть на форум и задавать вопрос

ЦитатаСообщение от TimaGera31 Посмотреть сообщение

Если ты себе установил идею и начинаешь учить джаву, то работай в ней и не парься.
Если тебе принципиально научиться запускать приложение с консоля то:
1 — создаешь пустую папку на компе (без участия идешки)
2 — запускаешь блокнот и копипасиш без пекеджа туда код «Привет мир»
3 — сохраняешь док с расширением java в новой папке
4 — если винда через шифт нажимешь правой кнопкой и открываешь консоль сразу уже с указанным путем к файлу, компилеш через javac
5 — запускаешь через java.
Ну а если совсем понять не можешь, мне лично помогает ютубчик. пишешь что-то типа «как запустить приложение java с консоли» и все.

Не получается запустить программу
При нажатии клавиши HOME включить индикатор NumLock и отключить индикаторы ScrollLock и CapsLock.

Не получается запустить программу
Проблема следующая: пришлось переустанавливать Паскаль, раньше нормально компилировало, а теперь.

Не получается запустить программу
У меня Microsoft Visual Studio 2012 ultimate и в связи с тем, что я только только начала осваивать.

Не получается запустить программу
Всем привет! Возник очень странный вопрос. Это — работает private void button1_Click(object.

Как запустить gui qt программу в консоли на linux vps-сервере?
Как запустить gui qt программу в консоли на linux vps-сервере? Можно конечно убрать все.

Источник

Error: Could not find or load main class com.company.Main

Помогите пожалуйста, поиски в интернетах не помогают никак.
Java при этом работает и код в Shell’e выполняется нормально.

Error: Could not find or load main class com.intellij.idea.Main
$ java -version openjdk version "1.8.0_151" OpenJDK Runtime Environment (build.

Ошибка сборки Maven — Error: Could not find or load main class –Xmx512M
Не могу собрать проект. Лог из IDEA: C:\Program Files\Java\jdk1.8.0_45\bin\java" -Xms512M.

Эксперт Java

Эксперт PythonЭксперт Java

Эксперт PythonЭксперт Java

«Could not find or load main class» в Eclipse
только только начал постигать java, но стартовать надо быстро и на доскональное постижение начиная.

error could not find or load main class
Здравствуйте! Недавно начал изучать Java и сразу же натолкнулся на такую проблему: Создаю файл.

Error: could not find or load main class
Добрый день всем! Уже десятки раз наверно везде задавали этот вопрос, но я сегодня весь день.

Error: Could not find or load main class
Пол дня читаю/проверяю/мучаюсь с запуском учебной програмки. Смотрите скрин. Что не так?

Error: Could not find or load main class
Error: Could not find or load main class laboratory5.l5 В чем может быть ошибка? Подскажите.

Error: Could not find or load main class Example в cmd
В первые начал изучать Java, и столкнулся с проблемой. Написал код: public class Example < .

Источник

Оцените статью