FAQ and Troubleshooting
This page contains frequently asked questions and troubleshooting tips for developers working with the OpenRocket codebase.
Frequently Asked Questions
Q: Why does OpenRocket still use the “ancient” Java language? Python and web-based programs are the future.
A: Java is a very powerful language and is still widely used in the industry. While it is true that Java is not as popular with (new) developers as Python or web-based languages, there are currently no plans to rewrite the codebase in another language. The main reason for this is that it would take a lot of time to rewrite the codebase, more time than the current OpenRocket developers can afford to miss out on their (limited) spare time. Besides, the current Java codebase is still working fine and has been tested by many users over the years.
That being said, maintaining a Java application does have challenges, mainly in ensuring it runs on all platforms and hardware configurations. Maintaining the GUI and 3D view has proven to be very challenging. Additionally, Java cannot be run on mobile devices such as iOS devices. If you are a developer and would like to contribute to the codebase rewrite, please contact the OpenRocket developers to see what you could do to help!
Q: How do I set up my development environment?
A: Please refer to the Development Setup guide for detailed instructions on setting up your development environment.
Q: How do I run OpenRocket from the source code?
A: After setting up your development environment, you can run OpenRocket in your preferred IDE by running
the main method in either swing/src/main/java/info/openrocket/swing/startup/SwingStartup.java
or
swing/src/main/java/info/openrocket/swing/startup/OpenRocket.java
, or run the following Gradle command:
./gradlew run
Q: How do I contribute to OpenRocket?
A: Please refer to the Development Guidelines for information on how to contribute to OpenRocket, including the pull request process.
Q: Where can I find the API documentation?
A: Please refer to the API Documentation for information on the OpenRocket API.
Q: How do I run tests?
A: Please refer to the Testing and Debugging guide for information on how to run tests.
Troubleshooting
Build Issues
Issue: Gradle build fails with “Could not find or load main class”
This can happen if your Java environment is not set up correctly. Make sure you have Java 17 or later installed and that your JAVA_HOME environment variable is set correctly.
# Check your Java version
java -version
# Check your JAVA_HOME environment variable
echo $JAVA_HOME
Issue: Gradle build fails with dependency resolution errors
Try cleaning your Gradle cache and rebuilding:
./gradlew clean
./gradlew build
Runtime Issues
Issue: 3D view doesn’t work or crashes
The 3D view uses JOGL (Java OpenGL), which can be problematic on some systems. You can disable the 3D engine by running
OpenRocket with the JVM argument -Dopenrocket.3d.disable
.
Getting Help
If you’re still having issues, you can:
Check the GitHub Issues: https://github.com/openrocket/openrocket/issues
Join the OpenRocket Discord: https://discord.gg/qD2G5v2FAw
Post on the Rocketry Forum: https://www.rocketryforum.com/forums/rocketry-electronics-software.36/
Open a discussion item on GitHub: https://github.com/openrocket/openrocket/discussions