• ,

Критическое обновление IntelliJ Idea

День добрый,
На всякий случай, если не все подписаны на новости от IntelliJ:

Security update for IntelliJ-based IDEs v2016.1 and older versions

Posted on May 11, 2016 by Eugene Toporov
We have just released an important update for all IntelliJ-based IDEs. This update addresses critical security vulnerabilities inside the underlying IntelliJ Platform. The vulnerabilities, in various forms, are also present in older versions of the IDEs; therefore, patches for those are also available.

While we have had no reports of any active attacks against these vulnerabilities, we strongly recommend for all users to install the update as soon as possible.

Прочие подробности тут: blog.jetbrains.com/blog/2016/05/11/security-update-for-intellij-based-ides-v2016-1-and-older-versions

P.S. На всякий случай сделайте копию (перед обновлением) папки с проектами.
  • ,

Барахлят импорты

Суть проблемы в том что, импорты перестали работать по alt+enter. То есть я раньше вводил код и мне сразу предлагалось добавить импорт, а сейчас при нажатии alt+enter только вот что есть:

В настройках стоит «Optimize imports on the fly», хотя после включения этого пункта ничего не поменялось.
Но при вставке уже готового кода появляется окошко со списком необходимых импортов…
  • ,

Не открывается окно выбора задач в Idee

Изначально стояла Idea14 — не открывалось окно выбора задач. Почитала форум — установила 15. Тоже никакого результата. Ява 7. Плагин скачала заново и переустановила — никаких изменений. Что может быть, кто подскажет?
  • ,

Оформление кода

Одну из задач (которая была решена и принята сервером) я реализовал в виде кода (забил * и X-ми чтобы не спойлерить).

/* xxx
1. Считывать строки(параметры) с консоли, пока пользователь не введет пустую строку(Enter).
2. Каждый параметр соответствует имени ***.
Для каждого параметра:
3. Создать объект *** класса ***, который равен *** из getX(String параметр).
4. Вывести на экран toString().
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //Add your code here
        List<String> al= new ArrayList<>();
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String str;
        while(!"".equals(str = reader.readLine())) al.add(str);
        for (int i = 0; i <al.size(); i++) System.out.println(XFactory.getX(al.get(i)).toString());
    }
...

Зашедший в гости полузнакомый раскритиковал, что так не пишут (это тебе не C и т.п.).
Не подскажете в чем я не прав (есть какие нормы и общепринятые стандарты)?
Или использование в одной строчке нескольких конструкций (оно вообще, без промежуточных присваиваний временным переменным, может привести в каких-либо ситуациях к каким-либо возможным последствиям?) — дурной тон?
Основные переменные (al, reader, str) объявлены до их использования (pascal-стиль), так как мне удобнее, всегда знаешь где можешь найти описание переменной с возможным комментарием.
Вспомогательные переменные объявлены в нужной зоне видимости (как переменная цикла i).
Idea не ругается, правда предлагает 2 опции:
Split into declaration and assigment (таки разделить объявление и присваивание) и заключить некоторые участки в блок try.

Как бы Вы правильнее написали код?

Что не так?
Для такой задачи не стоит комментировать каждую строчку.
  • ,

Ошибка плагина.

После установки последней версии плагина в IDEA периодически стали выскакивать ошибки. На работу вроде не влияют, но надо починить я думаю или может я не так что-то сделал.

cannot share data context between Swing events; initial event count = 248777; current event count = 250128
java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:115)
at com.intellij.ide.impl.DataManagerImpl$MyDataContext.getData(DataManagerImpl.java:357)
at com.intellij.openapi.actionSystem.DataKey.getData(DataKey.java:75)
at com.intellij.openapi.actionSystem.AnActionEvent.getData(AnActionEvent.java:165)
at com.intellij.openapi.actionSystem.AnActionEvent.getProject(AnActionEvent.java:120)
at com.javarush.plugin.JavaRushTaskChooser.actionPerformed(JavaRushTaskChooser.java:201)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher$3.performAction(IdeKeyEventDispatcher.java:595)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.processAction(IdeKeyEventDispatcher.java:646)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.inInitState(IdeKeyEventDispatcher.java:485)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:215)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:617)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:380)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
  • ,

Как создать исполняемый jar в Intellij IDEA / how to create jar in IDEA

Создаем исполняемый jar в Intellij IDEA

Как оказалось, не так то и просто найти в просторах интернета информацию об этом. Есть много ссылок на то, как это делается в Eclipse, а про Intellij IDEA сказано не многим больше нуля. Поэтому я создал этот пост.

IntelliJ IDEA дает возможность быстро создавать исполняемый JAR-файл вашей программы, содержащий модули со всеми зависимостями.

Для того, чтобы создать JAR, необходимо проделать всего 3 пункта:

1. Нажмите кнопку ‘+’ в диалоговом окне Project Structure и выберите соответствующий пункт (Рисунок 1):

Рисунок 1 – Project Structure -> Artifacts -> Jar -> From modules with dependencies

2. Далее IntelliJ IDEA показывает диалог, позволяющий настроить новый артефакт (Рисунок 2):

Здесь нужно выбрать главный класс вашего проекта и нажать ОK

Рисунок 2 – Диалог создания нового артефакта JAR

3. После нажатия клавиши ОК, вы можете создать файл Jar с помощью пункта меню Build -> Build Artifact

По умолчанию все библиотеки будут извлечены в целевой Jar. Сам исполняемый файл будет сгенерирован в директории out -> artifacts вашего проекта (Рисунок 3):

Рисунок 3 – Месторасположение сгенерированного JAR файла

Все, теперь исполняемый файл можно запускать.

Перестал работать плагин javaRush в Idea под Ubuntu

IDE internal Error occured
Здравствуйте, Господа.
Прошу Вашей помощи. Перестал работать плагин для Idea, не могу решать задачи.
Работаю в Ubuntu 14. Версия jdk 1.8.0_60
Раньше все работало хорошо, но в какой-то момент при нажатии на в Idea на кнопку получения списка задач с ДжаваРаша, IDE стала выдавать ошибку.
Прошу подсказать, что же делать.

Описание ошибки:
ExceptionInInitializerError: null
null
java.lang.ExceptionInInitializerError
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at java.lang.Class.newInstance(Class.java:442)
at javax.xml.soap.FactoryFinder.newInstance(FactoryFinder.java:47)
at javax.xml.soap.FactoryFinder.find(FactoryFinder.java:194)
at javax.xml.soap.FactoryFinder.find(FactoryFinder.java:98)
at javax.xml.soap.SAAJMetaFactory.getInstance(SAAJMetaFactory.java:74)
at javax.xml.soap.MessageFactory.newInstance(MessageFactory.java:146)
at com.sun.xml.internal.ws.api.SOAPVersion.(SOAPVersion.java:175)
at com.sun.xml.internal.ws.api.SOAPVersion.(SOAPVersion.java:84)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parseBinding(RuntimeWSDLParser.java:590)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parseWSDL(RuntimeWSDLParser.java:460)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:234)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:194)
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:163)
at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:348)
at com.sun.xml.internal.ws.client.WSServiceDelegate.(WSServiceDelegate.java:306)
at com.sun.xml.internal.ws.client.WSServiceDelegate.(WSServiceDelegate.java:215)
at com.sun.xml.internal.ws.client.WSServiceDelegate.(WSServiceDelegate.java:196)
at com.sun.xml.internal.ws.client.WSServiceDelegate.(WSServiceDelegate.java:192)
at com.sun.xml.internal.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:104)
at javax.xml.ws.Service.(Service.java:77)
at com.javarush.server.api.JarCommonService.(JarCommonService.java:42)
at com.javarush.plugin.JavaRushCommonService.(JavaRushCommonService.java:18)
at com.javarush.plugin.JavaRushUtil.authorize(JavaRushUtil.java:60)
at com.javarush.plugin.JavaRushTaskChooser.actionPerformed(JavaRushTaskChooser.java:46)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:162)
at com.intellij.openapi.actionSystem.impl.ActionButton.actionPerformed(ActionButton.java:170)
at com.intellij.openapi.actionSystem.impl.ActionButton.performAction(ActionButton.java:133)
at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:311)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:696)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:520)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:335)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.util.MissingResourceException: Can't find com.sun.xml.internal.messaging.saaj.soap.LocalStrings bundle
at java.util.logging.Logger.setupResourceInfo(Logger.java:1945)
at java.util.logging.Logger.(Logger.java:380)
at java.util.logging.LogManager.demandLogger(LogManager.java:554)
at java.util.logging.Logger.demandLogger(Logger.java:455)
at java.util.logging.Logger.getLogger(Logger.java:553)
at com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl.(SAAJMetaFactoryImpl.java:42)
… 64 more

Домашние и бонусные задания

Приветствую, друзья. Вопрос следующий.

Для каждого уровня есть «Домашние и бонусные задания».
Каждый раз капитан Бобров говорит следующее:
"
У меня для тебя шикарная новость. Вот тебе задания для закрепления полученных навыков. Выполняй их каждый день, и твои навыки будут расти с неимоверной скоростью. Они специально разработаны для выполнения их в Intellij IDEA.
"

Хотелось бы узнать, как выполнять эти задания каждый день, если после решения, они уходят из списка доступных заданий? Или я чего-то не знаю?

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

Всем спасибо за ответы.
  • ,

Ошибка выполнения в IDEA

Всем доброго. После обновления IDEA до 14.1.4 при запуске любой задачи на выполнение начала появляться такая ошибка:

Information:Using javac 1.7.0_75 to compile java sources
Information:10.08.2015 15:06 - Compilation completed with 1 error and 0 warnings in 5s 841ms
Error:Module 'JavaRushHomeWork' production: java.lang.IllegalArgumentException: No enum constant java.lang.annotation.RetentionPolicy.


Причем компиляция проходит безошибочно, ошибка появляется именно на стадии выполнения.
Плагин обновил. v.1.21. Ошибка никуда не ушла. Помогите (вдруг кто сталкивался) решением.