Gradle Java Application on Windows

Error: command line to long

Image for post
Image for post
Image by mohamed Hassan from Pixabay

If you create a Java application with the Gradle Application Plugin, you will sooner or later encounter the problem that the application can not be started under Windows.

The error message: command line too long

This limitation is documented in Windows Help.

But why does the error occur at all? (Needless to say, Microsoft just can not get it to develop a working OS?)

The problem can be found in Gradle’s Starter Script. It builds a CLASSPATH environment variable that contains the paths to all dependent JARs.

It will look like that:

set CLASSPATH=%APP_HOME%\lib\my-application-1.2.3.jar;%APP_HOME%\lib\jackson-module-kotlin-2.9.9.jar;%APP_HOME%\lib\kotlin-reflect-1.3.40.jar;%APP_HOME%\lib\kotlin-stdlib-jdk8-1.3.40.jar;%APP_HOME%\lib\slf4j-simple-1.7.25.jar;%APP_HOME%\.....

It’s clear that this variable gets bigger as the application gets more dependencies. The variable is then simply appended to the Java command as a -classpath parameter.


Voila, you get a command line that will sooner or later exceed the limit.

But the problem is easy to work around. To do this you make use of the class-path property of the JAR Manifesto. Instead of directly appending the dependency list to the Java command, the list is simply appended to the JAR manifest of the application.

jar {
manifest {
"Class-Path": (configurations.runtime.files)*.name.join(" ")
startScripts {
classpath = jar.outputs.files

From now on, the Starter Script will only have a classpath entry on the Application JAR.

set CLASSPATH=%APP_HOME%\lib\my-application-1.2.3.jar

All dependencies are now in MANIFEST.MF of my-application.jar

Manifest-Version: 1.0
Class-Path: jackson-module-kotlin-2.9.9.jar kotlin-reflect-1.3.40.jar kotlin-stdlib-jdk8-1.3.40.jar slf4j-simple-1.7.25.jar ...

Disclaimer: The solution was originally posted in the old Gradle Forum. However, I have adjusted it and completely abandon the “launcher” JAR.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store