Задать вопрос
Вопрос задан
Изменён 6 лет 7 месяцев назад
Просмотрен 8k раз
Добрый день, занимаюсь освоением Java.
jdk и jre лежат в Program Files/Java
Netbeans («из коробки») при создании проекта подключает к нему JDK, и для любого класса из него можно посмотреть исходный код.
А вот eclipse («из коробки») посмотреть исходный код не дает. В списке файлов проекта значится JRE, и при «ctrl+шелчок» на любом классе/методе выдает: Source not found и, к примеру …Java\jre7\lib\rt.jar no source attachment.
Это вообще нормально, что он ссылается на отдельную jre? Ведь по идее, jre, которая входит в состав jdk и есть нужная jre, разве не так?
Не подскажете, как быть?
Заранее спасибо!
1
Для разработки надо использовать JDK, в ней есть исходный код классов. Зайди в Window-Preferences-Java-Installed JREs укажи путь к установленной JDK (например c:\Program Files\Java\jdk1.7.0).
После проверь настройки проекта: Properties-Java Build Path-Libraries и установи там правильную версию для JRE System Library
Похоже что у тебя eclipse использует для работы JRE, это можно исправить в eclipse.ini
-vm c:/Program Files/Java/jdk1.7.0_10/bin/javaw.exe
2
P. S. Абсолютно аналогичным способом можно подключить исходники JDK, если вы работаете чисто на Java. Для этого к библиотеке rt.jar надо подключить в качестве исходников файл src.zip, лежащий в корне папки, где уставлен ваш JDK.
ссылка на хабр
1
Регистрация через Google
Регистрация через Facebook
Регистрация через почту
Почта
Необходима, но никому не показывается
Почта
Необходима, но никому не показывается
У меня не читабельный вывод русских символов в консоли после запуска тестов
Что было попробовано:
Изменить кодировку в File->Settings>Editor->File Encodings Global Encoding и Project Encoding выбрал (перед этим проверил что везде в системе по умолчанию русский язык, то есть в Региональных настройках) и Default Encoding for properties files поставил UTF-8
Внизу проекта в нижнем правом углу проверил UTF-8
Проверил в chcp было 866 в cmd
В файлах Idea IntelliJ IDEA Community Edition 2018. 2.8\bin\idea.exe.vmoptions и idea64.exe.vmoptions, также доступные через Help->Edit Custom VM Options…, я добавил строку -Dfile.encoding=UTF-8.
Во всех pom.xml прописал кодировку
<encoding.type>UTF-8</encoding.type> <project.build.sourceEncoding>${encoding.type}</project.build.sourceEncoding> <project.reporting.outputEncoding>${encoding.type</project.reporting.outputEncoding> <file.encoding>${encoding.type}</file.encoding>
А так же добавлял параметр -Dfile.encoding=UTF-8
в строке запуска конфигурации (Edit configurations) clean test -pl tr2mongaranty-component-test-bdd -fae -P bdd-tests,sbpegas-mon-qa -DfailIfNoTests=false **-Dfile.encoding=UTF-8** -Dcucumber.options.tags=@algIvan
При том если я просто создаю класс и печатаю русские символы всё ок.
Help
"C:\Program Files\Java\jdk1.8.0_281\bin\java.exe" -Dmaven.multiModuleProjectDirectory=C:\Users\kakty\Desktop\JavaDela\cc-tr2mongarantee1234 -Dmaven.home=B:\Mav\apache-maven-3.5.2 -Dclassworlds.conf=B:\Mav\apache-maven-3.5.2\bin\m2.conf "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.2.8\lib\idea_rt.jar=51889:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.2.8\bin" -Dfile.encoding=UTF-8 -classpath B:\Mav\apache-maven-3.5.2\boot\plexus-classworlds-2.5.2.jar org.codehaus.classworlds.Launcher -Didea.version=2018.2.8 -Dmaven.repo.local=C:\Users\kakty\.m2\repository clean test -pl tr2mongaranty-component-test-bdd -fae -P bdd-tests,sbpegas-mon-qa -DfailIfNoTests=false -Dfile.encoding=UTF-8 -Dcucumber.options.tags=@ivan1 [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building CC - TR2MONGARANTY - Testing - BDD CURRENT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ tr2mongaranty-component-test-bdd --- [INFO] Deleting C:\Users\kakty\Desktop\JavaDela\cc-tr2mongarantee1234\tr2mongaranty-component-test-bdd\target [INFO] [INFO] --- maven-resources-plugin:3. 1.0:resources (default-resources) @ tr2mongaranty-component-test-bdd --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 4 resources [INFO] Copying 7 resources [INFO] Copying 4 resources [INFO] [INFO] --- maven-compiler-plugin:3.7.0:compile (default-compile) @ tr2mongaranty-component-test-bdd --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 36 source files to C:\Users\kakty\Desktop\JavaDela\cc-tr2mongarantee1234\tr2mongaranty-component-test-bdd\target\classes [WARNING] /C:/Users/kakty/Desktop/JavaDela/cc-tr2mongarantee1234/tr2mongaranty-component-test-bdd/src/main/java/ru.sberbank.pegas.at.bdd/stepdefs/UtilSteps.java:[149,17] withTimeout(long,java.util.concurrent.TimeUnit) in org.openqa.selenium.support.ui.FluentWait has been deprecated [WARNING] /C:/Users/kakty/Desktop/JavaDela/cc-tr2mongarantee1234/tr2mongaranty-component-test-bdd/src/main/java/ru.sberbank.pegas.at.bdd/stepdefs/UtilSteps.java:[152,17] pollingEvery(long,java.util.concurrent. TimeUnit) in org.openqa.selenium.support.ui.FluentWait has been deprecated [WARNING] /C:/Users/kakty/Desktop/JavaDela/cc-tr2mongarantee1234/tr2mongaranty-component-test-bdd/src/main/java/ru.sberbank.pegas.at.bdd/stepdefs/UtilSteps.java:[186,17] withTimeout(long,java.util.concurrent.TimeUnit) in org.openqa.selenium.support.ui.FluentWait has been deprecated [WARNING] /C:/Users/kakty/Desktop/JavaDela/cc-tr2mongarantee1234/tr2mongaranty-component-test-bdd/src/main/java/ru.sberbank.pegas.at.bdd/stepdefs/UtilSteps.java:[189,17] pollingEvery(long,java.util.concurrent.TimeUnit) in org.openqa.selenium.support.ui.FluentWait has been deprecated [WARNING] /C:/Users/kakty/Desktop/JavaDela/cc-tr2mongarantee1234/tr2mongaranty-component-test-bdd/src/main/java/ru.sberbank.pegas.at.bdd/stepdefs/UtilSteps.java:[406,17] withTimeout(long,java.util.concurrent.TimeUnit) in org.openqa.selenium.support.ui.FluentWait has been deprecated [WARNING] /C:/Users/kakty/Desktop/JavaDela/cc-tr2mongarantee1234/tr2mongaranty-component-test-bdd/src/main/java/ru. sberbank.pegas.at.bdd/stepdefs/UtilSteps.java:[409,17] pollingEvery(long,java.util.concurrent.TimeUnit) in org.openqa.selenium.support.ui.FluentWait has been deprecated [WARNING] /C:/Users/kakty/Desktop/JavaDela/cc-tr2mongarantee1234/tr2mongaranty-component-test-bdd/src/main/java/ru.sberbank.pegas.at.bdd/stepdefs/UtilSteps.java:[426,17] withTimeout(long,java.util.concurrent.TimeUnit) in org.openqa.selenium.support.ui.FluentWait has been deprecated [WARNING] /C:/Users/kakty/Desktop/JavaDela/cc-tr2mongarantee1234/tr2mongaranty-component-test-bdd/src/main/java/ru.sberbank.pegas.at.bdd/stepdefs/UtilSteps.java:[429,17] pollingEvery(long,java.util.concurrent.TimeUnit) in org.openqa.selenium.support.ui.FluentWait has been deprecated [WARNING] /C:/Users/kakty/Desktop/JavaDela/cc-tr2mongarantee1234/tr2mongaranty-component-test-bdd/src/main/java/ru.sberbank.pegas.at.bdd/stepdefs/IntegrationSteps.java:[103,17] withTimeout(long,java.util.concurrent.TimeUnit) in org.openqa.selenium.support.ui.FluentWait has been deprecated [WARNING] /C:/Users/kakty/Desktop/JavaDela/cc-tr2mongarantee1234/tr2mongaranty-component-test-bdd/src/main/java/ru. sberbank.pegas.at.bdd/stepdefs/IntegrationSteps.java:[106,17] pollingEvery(long,java.util.concurrent.TimeUnit) in org.openqa.selenium.support.ui.FluentWait has been deprecated [INFO] /C:/Users/kakty/Desktop/JavaDela/cc-tr2mongarantee1234/tr2mongaranty-component-test-bdd/src/main/java/ru.sberbank.pegas.at.bdd/stepdefs/IntegrationSteps.java: C:\Users\kakty\Desktop\JavaDela\cc-tr2mongarantee1234\tr2mongaranty-component-test-bdd\src\main\java\ru.sberbank.pegas.at.bdd\stepdefs\IntegrationSteps.java uses unchecked or unsafe operations. [INFO] /C:/Users/kakty/Desktop/JavaDela/cc-tr2mongarantee1234/tr2mongaranty-component-test-bdd/src/main/java/ru.sberbank.pegas.at.bdd/stepdefs/IntegrationSteps.java: Recompile with -Xlint:unchecked for details. [INFO] [INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ tr2mongaranty-component-test-bdd --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 189 resources [INFO] [INFO] --- maven-compiler-plugin:3. 7.0:testCompile (default-testCompile) @ tr2mongaranty-component-test-bdd --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 1 source file to C:\Users\kakty\Desktop\JavaDela\cc-tr2mongarantee1234\tr2mongaranty-component-test-bdd\target\test-classes [INFO] [INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ tr2mongaranty-component-test-bdd --- [INFO] [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- INFO Reflections took 219 ms to scan 1 urls, producing 2 keys and 39 values WARNING: Found tags option '~@Ignore'. Support for '~@tag' will be removed from the next release of Cucumber-JVM. Please use 'not @tag' instead. INFO @algIvan INFO �㭪樮���: ��ઠ �����⬮� INFO INFO @algIvan @ivan1 INFO �業�: ��ઠ ���祭�� TRUE �����⬮� # features/simpleDeals+/GetLegalClientProfileAlgo/mon/Ivan1. feature:6 [INFO] Running ��ઠ �����⬮� INFO * ������:"�����" "���ਧ��� �� ��� ��� �������" "�業�: ���ਧ��� �� ��� ��� �������" # UtilSteps.startImport(String,String,String) INFO ���� ⥪�騩 ���짮��⥫� "admin" # UtilSteps.setCurrentUser(String) INFO � �⪫�砥��� ��⨥ �ਭ�� ����� 蠣��� # UtilSteps.switchGettingScreenshot(String) INFO ���樠������ ���-�ࠩ��� � ������ 92120749-ed84-42be-94c4-7ffbdf84b3fb INFO Attempt #1 to start web driver
И дальше стартует веб драйвер и идёт процесс прогона теста
Я использую Eclipse Juno с CDT на Macbook 2007 года, работающем под управлением Snow Leopard. У меня есть два симптома:
Я провел часы в поисках ответа в Google, достаточно долго, чтобы убедиться, что эти два симптома указывают на множество проблем, о которых сообщалось в течение почти десяти лет без адекватного решения. Это проблема, потому что через десятилетие должно было быть более чем достаточно входных данных, чтобы предоставить одну процедуру устранения неполадок где-то, которая шаг за шагом проведет пользователя через устранение всех возможных причин.
Вместо этого я часами читал о множестве людей, многие из которых решили свою конкретную проблему, но все они, кажется, должны были сделать что-то немного другое, чтобы достичь этого.
Это не должно быть так сложно решить. В частности, в таких случаях, как мой [но я не единственный], когда в представлении консоли отображается сборка без ошибок, но пользователь может скопировать двоичный файл [который Eclipse странно говорит, что не может найти] на рабочий стол и запустить его без ошибок. любые проблемы либо из Finder, либо из сеанса терминала bash.
Все это, по-видимому, довольно решительно указывает на отсутствие адекватных индикаторов в двоичном синтаксическом анализаторе Mach0 64, который должен быть разработан, чтобы сообщать нам именно то, что ему нужно, чего он не видит .
По общему признанию, это усугубляется в случае таких MacBook, как мой, которые работают под управлением 64-битной ОС [Snow Leopard] на 64-битном процессоре, который производитель, к сожалению, подрезал 32-битным загрузочным ядром. Но имейте в виду, что я уже пробовал переключатель -arch i386 g++ и повторное связывание g++ с g++-4.0 без каких-либо изменений в симптомах.
ДОПОЛНЕНИЕ, ДОБАВЛЕННОЕ 07.10.2012:
Я добавляю этот контрольный список в надежде прояснить Путь для несомненно многих других, кто задаст этот вопрос в ближайшие годы. Этот способ отражает то, что я считаю необходимым при использовании Eclipse Juno с Mac под управлением Snow Leopard:
1) Перейдите в «Настройки» -> «C/C++» -> «Мастер создания нового проекта CDT» и в разделе «Предпочитаемые наборы инструментов» убедитесь, что все исполняемые проекты типы установлены на MacOSX GCC.
2) Это важно. Мне удалось получить папку Binaries в Project Explorer и, следовательно, запустить проект после его сборки, используя имя проекта, которое не содержит точек [‘.’]. Это я узнал из другого ответа здесь, отредактированного через несколько часов после моего предыдущего сообщения. Это требование легко пропустить, поэтому оно часто встречается, особенно если вы имеете опыт работы с Eclipse, но только с другими языками, потому что в руководствах для других языковых плагинов [например, с PyDev или для Java] вы часто создаете проекты с точками в имени. Если вы выработали эту привычку с другими языками, избавьтесь от нее при использовании CDT для C/C++. Однако имейте в виду, что недостаточно просто щелкнуть правой кнопкой мыши и переименовать существующее имя проекта, на этот раз не используя точки. Самый простой способ — удалить свой старый проект и создать новый с именем без точек.
3) Многие веб-сайты предупреждают вас, чтобы вы либо использовали ключ компилятора -arch i386, либо изменили ссылки для /usr/bin/gcc и /usr/bin/g++, чтобы они указывали на gcc-4. 0 и g++-4.0. вместо gcc-4.2 и g++-4.2. Я создал bash-скрипт, чтобы облегчить переключение туда и обратно, и исследовал, нужно ли это. Этого не было, по крайней мере, не с моим Macbook. Основываясь на том, что я прочитал на одном сайте от разработчика Mach-O, я подозреваю, что текущая версия Mach-0 64 работает в обоих направлениях. Это хороший переход к …
4) В свойствах проекта, а не в настройках, перейдите в C/C++ Build->Settings и в разделе Binary Parsers убедитесь, что Mach-O 64 Parser отмечен. Убедитесь, что отмечен этот, а не устаревший синтаксический анализатор Mach-O.
5) На этом этапе, после сборки проекта, в Project Explorer должно быть видно несколько вещей:
6) Теперь в папке проекта должна быть папка Binaries.
7) В этой папке Binaries теперь должен быть ваш исполняемый файл. Рядом с ним должно быть [x86_64/le], если, как и я, ваш Mac фактически 32-битный. Сейчас не лучшее время вдаваться в запутанную тему о том, является ли ваш Mac фактически 32-битным или 64-битным. Если вы не знаете, а многие люди не знают, потому что Apple делает это запутанным, проверьте маленькое приложение, которое можно загрузить с http://www.ahatfullofsky.comuv.com/English/Programs/SMS/SMS. html, который расскажет вам, что такое истина. Это бесплатно, но «цена» заключается в том, что вам нужно прокручивать рекламу вверху страницы, отражающую политическую позицию программиста.
спросил
Изменено 2 года, 8 месяцев назад
Просмотрено 160 тысяч раз
Windows 7, Eclipse CDT, Juno Service Release 2, кросс-компилятор.
Проекты компилируют сгенерированные исполняемые файлы, но Eclipse их не видит; поэтому «Выполнить» не удается. Исполняемые файлы помещаются в каталог Debug. Двойной щелчок или вызов командной строки на скомпилированном исполняемом файле работает без проблем.
Как решить эту проблему?
2
Это случилось со мной, и я нашел решение, посмотрите, работает ли это для вас:
После того, как вы создали свой проект со значком молотка:
После этого вы сможете запускать проект сколько угодно.
Надеюсь, вам это поможет.
1
Просто выберите проект и нажмите CTRL + B .
4
Я думаю, что нашел решение — должен быть выбран правильный бинарный синтаксический анализатор, чтобы Eclipse мог распознать исполняемый файл:
Выберите проект, затем щелкните правой кнопкой мыши. Project->Properties->C/C++ Build->Settings->Binary Parsers, PE Windows Parser.
Т.е. если используется компилятор Cygwin, то следует использовать парсер Cygwin.
Это сработало для меня, по крайней мере, для кросс-компилятора (как в Windows 7, так и в Ubuntu 12.04). В Linux я использую парсер Elf .
Если у кого-то есть лучшее решение, пожалуйста, сообщите.
1
На Mac. Если у вас также есть аналогичная проблема, как упоминал выше Ненад Булатович, вам необходимо изменить Binary Parsers .
Нажмите Команда + I , чтобы открыть свойства (или щелкните правой кнопкой мыши проект и выберите свойство)
Убедитесь, что вы выбрали Mach-O 64 Parser .
1
нажмите ctrl + B, а затем вы можете использовать кнопку «Выполнить».
сначала мне пришлось нажать маленькую кнопку со стрелкой, которая открывает меню, содержащее «Выполнить конфигурации»,
, затем в следующем окне мне пришлось нажать «Приложение C/C++», а затем кнопку без текста с зеленым + на ней
затем мне пришлось нажать кнопку «Применить» и «Выполнить»
, а затем eclipse может запустить/отладить программу. 🙂
в моем случае это решение для исправления. При создании проекта выберите MinGW GCC на панели Toolchains.
После создания проекта выберите файл проекта, нажмите ctrl + b, чтобы построить проект. Затем нажмите «Выполнить», и вывод должен быть напечатан на консоли.
1
Как бы то ни было, у меня была эта проблема, и причиной была неверная информация о DWARF 3 в двоичном файле в выбранном проекте (у которого не было исполняемых двоичных файлов).
Это работало примерно так: у меня было два проекта Main
и Library
. Main
зависел от проекта Library
, и первый имел исполняемый файл, а второй просто создавал статическую библиотеку (с которой связан Main
).
Мой параметр запуска был установлен на «Выполнить/Отладка -> Запуск», параметр был установлен на «запустить текущий, иначе последний» следующим образом (см. внизу справа):
Если бы у меня был выбран проект Main
, все бы работало нормально: запускал бы main project. Если бы у меня был выбран проект Library
1 , он потерпел бы неудачу с сообщением об ошибке, данным OP. Причина, по-видимому, заключалась в следующем: поскольку у меня был выбран проект Library
, PE-сканер сканировал двоичные файлы в проекте, чтобы увидеть, запускаются ли какие-либо из них, и поскольку сканирование не удавалось из-за этой ошибки, перед этим появлялось сообщение об ошибке. он когда-либо доходил до «Запустить ранее запущенное приложение».
Я мог бы обойти это следующим образом:
1 Обычно я не выбирал проект напрямую, конечно, он выбирался косвенно, потому что я работал с одним из содержащихся в нем исходных файлов.
По моему опыту, после создания проекта ( CTRL+B
) необходимо создать конфигурацию запуска (или отладки) в раскрывающемся меню Выполнить
или Отладка
на главной панели инструментов. Затем на главной странице нажмите кнопку
Поиск проекта...
.
Это найдет все созданные вами исполняемые файлы и отобразит их в диалоговом окне. Вы можете выбрать правильный, а затем нажать «Выполнить» (или
, если у вас успешная сборка и вы получаете ошибку «Запуск двоичного файла не найден». Попробуйте выполнить следующие шаги:
Нажмите «Выполнить» -> «Выполнить конфигурацию» -> «Приложение C/C++» -> щелкните «имя_проекта» отладки -> нажмите «Обзор» и выберите файл проекта -> нажмите «ОК» -> под ним. файл проекта -> Вы найдете два файла 1.Debug 2.Src -> Щелкните файл отладки -> Затем щелкните файл с именем вашего проекта и нажмите «ОК») -> затем нажмите «Применить» и нажмите кнопку «Выполнить».
Это должно решить проблему
2
Мне помогло.
Перейдите в «Проект» -> «Свойства» -> «Параметры запуска/отладки» -> Щелкните конфигурацию и нажмите «Изменить», теперь откроется «Редактировать конфигурацию».
Нажмите «Поиск проекта», выберите двоичный файл из «Двоичных файлов» и нажмите «ОК».
Примечание. Прежде чем делать все это, убедитесь, что вы сделали следующее:
—> Двоичный файл генерируется после выполнения «Построить все» или (Ctrl+B)
. разрешение на выполнение для затмения:
cd каталог установки затмения sudo chmod +x затмение
Использование Eclipse Luna в Ubuntu 12.04 LTS.
Убедитесь, что имя папки не содержит расширения .c. Когда я удалил расширение .c в имени моей папки, оно сработало автоматически.
Вам нужно нажать на компилятор MinGW при запуске кода. Несоблюдение этого требования приведет к ошибке запуска неудавшегося двоичного файла.
У меня такая же проблема на Eclipse 3.8.1. Для меня это сработало, чтобы установить тип артефакта как исполняемый:
Щелкните проект правой кнопкой мыши -> Сборка C/C++ -> Настройки -> Артефакт сборки -> Тип артефакта: Исполняемый
Наконец, перестроение проекта привело к созданию записи «Двоичные файлы» в Project Explorer.