IDEA setup - ThunderboltsRobotics/EZ-WPILibJ GitHub Wiki

Linux — Debian, including Ubuntu and other derivatives

JDK

Start by installing the Java Development Kit through Aptitude, if it isn't already installed (v8 is the latest stable version at time of writing): root@host:~# aptitude install openjdk-8-jdk.

IDEA

Next, if you don't have IDEA installed already, visit the download page for IDEA on the JetBrains website. Feel free to buy the Ultimate Edition, but the free Community Edition has more than enough tools for FRC Java development. Decompress the .tar.gz archive in a program folder, /usr/local/bin/intellij-idea for example, and set two files as executable:

  • root@host:/usr/local/bin/intellij-idea# chmod +x ./bin/fsnotifier64 (or ./bin/fsnotifier on x86 arch)
  • root@host:/usr/local/bin/intellij-idea# chmod +x ./bin/idea.sh

Running said idea.sh script will open IDEA in the graphical environment. Configuring IDEA is fairly self-explanatory, so all that's left is to configure the global libraries.

Note: The initial, max, etc. memory parameters used by IDEA's JVM instance are in .../bin/idea64.vmoptions (x86_64) or .../bin/idea.vmoptions (x86). Regardless of project, robot or otherwise, 1 GiB is more than enough memory to handle the various code completion and analysis features. Unless you've tinkered with VM arguments before, it's probably not necessary to modify them.

.desktop file (graphical program shortcut)

On Ubuntu, IDEA's first-run config asks for a root password to install itself under /usr/share/applications, allowing Unity's Launcher/Dash to run it. Upon reboot, it can be found by searching for "IDEA".

Platform-independent: Deploying with IDEA

Note: skip to the 'Libraries' section if you have a developer using Eclipse on your team. The official deploying script is currently only available for Eclipse, so FRC Team 5333 has created the GradleRIO repository to host their Gradle scripts. A tutorial for installing them can be found in the README.md file of that repo.

Platform-independent: Libraries