1.1.4. Java Development Environments¶
The tool that we use to compile a Java source file into a Java class file is called a compiler. Most programmers use an Integrated Development Environment (IDE) that has the compiler built in and helps you write, compile, run, and debug programs.
You can learn Java by just using the interactive coding panels called Active Code in this e-book. If you are logged in, the Active Code will remember your changes and even show you a history of your changes to the code if you click on Load History.
However, it’s a good idea to also try a Java IDE to build code outside of this e-book, especially to try coding with user input which Active Code cannot do. There are many Java IDEs available. Here are some of most popular ones used by AP CSA teachers:
1.1.4.1. Cloud IDEs¶
There are a lot of online cloud IDEs where you can code online in many programming languages. Most are free to start, but offer different features for a price. These are great options if you are using a Chromebook or you cannot install software on your computer or you want an easy no-installation option. Some of the Active Code samples in this e-book also include a link to online IDEs. These projects can be copied to make your own copy.
Here are some popular online IDEs:
Replit (https://replit.com/) an online IDE which recently switched to only allowing 3 projects at a time for free. Be aware that Replit has turned on its AI feature for code completion for all accounts (https://replit.com/ai). Each user can turn the AI on and off at the bottom of the code window, and use an AI chat window to ask questions of the AI.
JuiceMind (https://juicemind.com/) is an online IDE that offers many free and paid features for teachers to set up classrooms like Coding Rooms. It has a built-in version of CSAwesome.
PickCode (https://pickcode.io/) is another online IDE that offers many free and paid features for setting up classrooms.
1.1.4.2. Github Classroom and Codespaces¶
Github provides many free opportunities for students and teachers (https://docs.github.com/en/education/quickstart). Github Classroom (https://classroom.github.com/) allows teachers to set up a classroom based on github repositories. Github and git are widely used in the computer industry, so learning to use it is great experience for students. Github now has a cloud IDE called Codespaces (https://github.com/features/codespaces) which you can use for 60 hours a month for free or completely free if you join as a school or get approved as a teacher or student. In Codespaces, you can start from a blank template or a repo, open a .java file in the VSCode editor, follow prompts to install the Extension Pack for Java, click on the Run and Debug (play button), follow the prompts to install the Java debugger, and see the output of your code in the terminal. You can also use Copilot (https://github.com/features/copilot), which is a coding AI based on GPT, for free if you are approved for educational use.
Students will need to sign up for a free Github account (https://github.com/signup) if they don’t already have one in order to use Codespaces.
1.1.4.3. VSCode¶
VSCode (https://code.visualstudio.com) is a widely used coding editor which you can download on your local computers. It has many useful extensions. The code can be run in a terminal window in the editor. See https://code.visualstudio.com/docs/languages/java for Java support. This editor is different than Microsoft Visual Studio which is a very large IDE.
1.1.4.4. Dr. Java¶
DrJava (from http://DrJava.org) is a free, simple, easy to install and use development environment. One nice feature is the interactions pane at the bottom which lets you try out Java code without having to create a class first.
1.1.4.5. BlueJ¶
BlueJ (https://www.bluej.org/) is a free Java IDE designed for beginners. It is built to explore objects and object-oriented programming and has a teachers’ community as well as a playlist of videos online https://www.youtube.com/playlist?list=PLYPWr4ErjcnzWB95MVvlKArO6PIfv1fHd to go with the BlueJ Object-First Java book.
1.1.4.6. jGRASP¶
jGRASP (https://www.jgrasp.org/) is a free lightweight development environment, created specifically to provide automatic generation of software visualizations. jGRASP is implemented in Java, and runs on all platforms with a Java Virtual Machine (Java version 1.5 or higher). jGRASP produces Control Structure Diagrams (CSDs) for Java, C, C++, Objective-C, Python, Ada, and VHDL; Complexity Profile Graphs (CPGs) for Java and Ada; UML class diagrams for Java; and has dynamic object viewers and a viewer canvas that work in conjunction with an integrated debugger and workbench for Java. The site includes both intro video and PDF tutorials.
1.1.4.7. IntelliJ¶
IntelliJ (https://www.jetbrains.com/idea/) is a free Java IDE from JetBrains which many professionals use. It is a little easier to configure than Eclipse below. Here is a guide on how to set up IntelliJ: https://www.jetbrains.com/help/idea/install-and-set-up-product.html.
1.1.4.8. Netbeans¶
Netbeans (https://netbeans.org/) is one of the original Java IDEs. Here is a tutorial on how to set it up: https://netbeans.org/kb/docs/java/quickstart.html.
1.1.4.9. Eclipse¶
Eclipse (https://www.eclipse.org/downloads/packages/installer) is what many professional Java programmers use. It may be a little complex for beginners. Here are some installation and configuration instructions for Eclipse for CSA Java: http://skylit.com/javamethods/faqs/Eclipse.pdf.