Most lists of Java developer tools stop at the IDE. Running a Java app also means getting into a server when it misbehaves, often from a phone, and knowing how much memory the JVM will actually take before you pick a plan. This page covers all three, with ratings, licenses and prices taken from the stores and the vendors' own pages.
Figures checked in November 2026.
Java hosting calculator
The plan finder at the top of this page is a Java hosting calculator built on the same data as the Java hosting comparison. You enter what your app needs, such as memory, whether it must stay awake, the region and a monthly budget, and it estimates which plans fit and what they cost per month. The figures come straight from the comparison table, so a plan that sleeps after 15 minutes or caps free hours shows up with that limit attached. Treat the result as a shortlist and confirm the price on the provider's page before you sign up.
The best SSH app for phone and tablet
A deploy that fails at dinner time is the classic reason to have an SSH client on your phone. Store ratings are a rough signal, and the number of ratings matters as much as the average: a 4.8 from 400 people says less than a 4.6 from 46,000.
| App | Use | App Store (US) | App Store ratings | Google Play | Play reviews | Play installs |
|---|---|---|---|---|---|---|
| Termius | SSH/SFTP client | 4.70 | 19,616 | 4.6 | 46.1K | 1M+ |
| Blink Shell, Build & Code | SSH/Mosh terminal, iOS and iPadOS | 3.11 | 425 | not on Google Play | - | - |
| Prompt 3 (Panic) | SSH/Mosh client, Apple platforms | 4.34 | 379 | not on Google Play | - | - |
| JuiceSSH | SSH client, Android | not on App Store | - | no longer listed | - | - |
| ConnectBot | open source SSH client, Android | not on App Store | - | 3.9 | 45.4K | 5M+ |
| Termux | Linux terminal environment, Android | not on App Store | - | 4.5 | 171K | 10M+ |
| AWS Console | AWS management | 4.73 | 6,175 | 4.8 | 29.6K | 1M+ |
| Microsoft Azure | Azure management | 4.78 | 2,816 | 4.5 | 11K | 1M+ |
| Google Cloud | GCP console | 3.35 | 110 | 4.2 | 42.1K | 10M+ |
| GitHub | repos, pull requests, issues, Actions | 4.83 | 39,252 | 4.8 | 209K | 10M+ |
App Store averages and counts are exact values from Apple's lookup API for the US store. Google Play rounds both the rating and the review count, so "46.1K" is Google's own rounding.
On ratings and reach together, Termius is the best SSH app for most people: it is the only SSH client with high scores on both stores. ConnectBot is the long-standing open source choice on Android, with 5M+ installs and a lower 3.9 average. Termux is something else, a full Linux userland on Android where you can install an OpenSSH client yourself. Blink Shell and Prompt 3 matter if you want Mosh, which keeps a session alive when your phone switches networks.
JuiceSSH, once a common Android recommendation, is gone from Google Play. Its listing returned a 404 for both the US and the German store, and the AppBrain tracker dates the removal to December 11, 2025. Older "best SSH app" articles still recommend it, so do not be surprised when the link fails.
Of the mobile Java developer tools, the cloud console apps are worth installing for one reason: restarting a service or reading logs without a laptop. The AWS and Azure apps rate well on both stores. The Google Cloud app has 10M+ installs on Android but only 110 ratings and a 3.35 average on the US App Store, which suggests iPhone users mostly manage GCP from the browser.
Desktop tools: IDEs, build tools, API clients
Only Java developer tools with a license or price stated on an official page are listed.
| Tool | Type | License / price |
|---|---|---|
| Eclipse IDE | IDE | Eclipse Public License 2.0, free |
| Apache NetBeans 31 | IDE | Apache License 2.0, free |
| Apache Maven 3.10.0 | build tool | Apache License 2.0, free; runs on JDK 8 or newer |
| Gradle | build tool | Apache License 2.0, free |
| Postman | API client | Free plan (1 user); Solo $9/month, Team $19 per user/month, both billed annually |
| Bruno | API client | open source edition free (MIT on GitHub); Pro $6 and Ultimate $11 per user/month, billed annually |
IntelliJ IDEA from JetBrains is the other widely used Java IDE; JetBrains publishes its current editions and prices on its own store page, which is the place to check before you buy.
The build tool choice is usually made for you by the project you join. Maven 3.10.0 is the recommended release, and a Maven 4 release candidate exists but is marked as not safe for production; note that Maven 4 needs JDK 17 or newer to run. Gradle is the other option, under the same Apache license.
For API clients, the difference is where your requests live. Postman's free plan covers one user, with paid plans for teams. Bruno stores collections as plain-text files in a folder on your disk, so you can commit them to Git next to the code. That alone makes it attractive for small teams that already review everything in pull requests.
How to size memory for a JVM app
Memory is where most cheap Java deployments go wrong, and the cause is usually a default, not a leak.
The JVM sizes its maximum heap as a percentage of the memory it detects. On Linux, container detection is on by default, so the JVM reads the container's limit rather than the host's RAM. The default for -XX:MaxRAMPercentage is 25 percent. On a 512 MB instance, such as Render's free web service or Railway's free plan cap of 0.5 GB per service, the heap stops near 128 MB while three quarters of the instance sits unused by the heap.
The heap is not the whole bill, though. Class metadata goes into metaspace, which has no size limit by default. Each thread gets its own stack, 1024 KB by default on Linux x64, so a servlet container with 200 request threads can claim a large slice just for stacks. Add the JIT's compiled code and native buffers, and the total process size runs well above the heap setting.
A workable approach for a single-app container:
- Start with
-XX:MaxRAMPercentage=75, the example value in the Java documentation, which leaves a quarter of the instance for everything outside the heap. - Cap metaspace with
-XX:MaxMetaspaceSize=256mif you want a predictable ceiling. - Lower the thread pool of your servlet container if the app is small; fewer threads means fewer stacks.
- Watch the real process size (resident memory) under load for a day, then pick the plan.
Plan sizes give you the outer limit. A 256 MB machine, such as Fly.io's shared-cpu-1x at $2.19 a month, is tight for a framework-based app. 512 MB is a realistic floor for a small Spring Boot or Tomcat service with a tuned heap. The 1 GB of Azure's free F1 plan or the 12 GB on Oracle Cloud's Always Free Ampere allowance give you room, at the cost of a daily CPU quota on Azure and possible reclaiming of idle instances on Oracle. The free Java hosting overview lists those limits side by side, and the Java versions page explains why a recent LTS JDK is the better starting point for container sizing.
Check one more thing before you blame the plan: which JDK the platform installed. A host that silently gives you an old JDK can behave differently from your laptop, and java -version in the deploy log answers that in a second.
Sources
- apps.apple.com/us/app/id549039908
- play.google.com/store/apps/details?id=com.server.auditor.ssh.client
- apps.apple.com/us/app/id1594898306
- apps.apple.com/us/app/id1594420480
- appbrain.com/app/juicessh-ssh-client/com.sonelli.juicessh
- play.google.com/store/apps/details?id=org.connectbot
- play.google.com/store/apps/details?id=com.termux
- apps.apple.com/us/app/id580990573
- play.google.com/store/apps/details?id=com.amazon.aws.console.mobile
- apps.apple.com/us/app/id1219013620
- play.google.com/store/apps/details?id=com.microsoft.azure
- apps.apple.com/us/app/id1005120814
- play.google.com/store/apps/details?id=com.google.android.apps.cloudconsole
- apps.apple.com/us/app/id1477376905
- play.google.com/store/apps/details?id=com.github.android
- eclipse.org/legal/epl-2.0
- netbeans.apache.org/front/main/index.html
- maven.apache.org/download.cgi
- github.com/gradle/gradle
- postman.com/pricing
- usebruno.com/pricing
- github.com/usebruno/bruno
- docs.oracle.com/en/java/javase/25/docs/specs/man/java.html