Hello,
I am diving into BoxLang today and have ran into an issue.
I installed BoxLang today on windows using the PowerShell scripts here on this page: Installation | BoxLang : A Modern Dynamic JVM Language
I ran both of them since I will want to try the transpiler at some point
Then at the box commandline I ran this
install commandbox-boxlang
and then this:
server start cfengine=boxlang javaVersion=openjdk21_jdk
The server process goes through it startup but when did a
server status
the server was stopped.
So then I ran this command:
server start cfengine=boxlang javaVersion=openjdk21_jdk --verbose --debug
and received this at the bottom of the messaging.
Exception in thread "main" java.lang.RuntimeException: Runwar must be called with a valid path to the serverinfo.json file as the only arg
at runwar.Start.main(Start.java:39)
Here is the server.json that was created:
{
"app":{
"cfengine":"boxlang"
},
"JVM":{
"javaVersion":"openjdk21_jdk"
}
}
Any advice on what the issue may be?
Thanks!
Randy
Here is the full start log if that helps
CommandBox:dmp-api> server start --verbose --debug
√ | Starting Server
|------------------------------
| Looking for server JSON file by convention: E:\dmp\dmp-api\/server.json
| webroot defaulted to location of server's JSON file: E:\dmp\dmp-api\
| start server in - E:\dmp\dmp-api\
| server name - MyBoxLang-Server
| server config file - E:\dmp\dmp-api\/server.json
| Contacting ForgeBox to determine the latest & greatest version of [boxlang stable]... Use an exact 'cfengine' version to sk
| ip this checkrsion: [21.0.6]
| OK, [boxlang 1.0.0-snapshot] it is!
| WAR/zip archive already installed. already installed.
| Setting engine namefo.runwarJarPath to [C:\Users\randy\.CommandBox\cfml\modules\commandbox-boxlang\lib\runwar-jakarta.jar]
| Found Java version: [21.0.6]-
| Verified Java 21 JRErofile to [development]
| Runwar 6.x with Jakarta support is already installed.n]
| Overriding serverInfo.runwarJarPath to [C:\Users\randy\.CommandBox\cfml\modules\commandbox-boxlang\lib\runwar-jakarta.jar]
| Server start command: tor
| C:\Users\randy\.CommandBox\serverJREs\openjdk21_jdk_x64_windows_hotspot_jdk-21.0.6+7\bin\java.exe
| -cp C:\Users\randy\.CommandBox\cfml\modules\commandbox-boxlang\lib\runwar-jakarta.jar runwar.Start
| --background=true
| --host 127.0.0.1
| --stop-port 50777
| --processname MyBoxLang-Server [boxlang 1.0.0-snapshot]
| --log-dir E:\dmp\dmp-api\.boxlang\/logs
| --server-name MyBoxLang-Server
| --tray-enable true
| --dock-enable true
| --directoryindex true
| --timeout 240
| --proxy-peeraddress false
| --cookie-secure false
| --cookie-httponly false
| --pid-file E:\dmp\dmp-api\.boxlang\/.pid.txt
| --tray-icon C:\Users\randy\.CommandBox\cfml\system\config\server-icons\trayicon.png
| --tray-config E:\dmp\dmp-api\.boxlang\/.trayOptions.json
| --debug true
| --gzip-enable true
| --jvm-args=-javaagent:E:\\dmp\\dmp-api\\.boxlang\\fusionreactor/fusionreactor.jar=name=MyBoxLang-Server,address=127.0.0.1:
| 62391,external=false;-Dfrlicense=0fb5f44597c6077c1338931913ed848089c1573545d8f6abca2fe45e227bb3317ca88f3b13a96208f1f96409f6f8d
| 072c0671faa910de1ba59f8fccb5a4a7e05;-Dfr.application.name=MyBoxLang-Server;-Dfr.ed.ds.enable=false;-Dfr.chat.enabled=true;-age
| ntpath:E:\\dmp\\dmp-api\\.boxlang\\fusionreactor/frjvmti_x64.d
| -war E:\dmp\dmp-api\
| --web-xml-path E:\dmp\dmp-api\.boxlang\/WEB-INF/web.xml
| --http-enable true
| --ssl-enable false
| --ajp-enable false
| --http2-enable true
| --open-browser true
| --open-url http://127.0.0.1:62307
| --port 62307
| --urlrewrite-enable true
| --client-cert-trust-headers false
| --urlrewrite-file C:\Users\randy\.CommandBox\cfml\system\config\urlrewrite.xml
| --predicate-file E:\dmp\dmp-api\.boxlang\/.predicateFile.txt
| The server for E:\dmp\dmp-api\ is starting on http://127.0.0.1:62307 ...
|------------------------------
| √ | Setting Server Profile to [development]
| |------------------------------------------------------
| | Profile set from server bound to localhost
| | Block CF Admin disabled
| | Block Sensitive Paths enabled
| | Block Flash Remoting enabled
| | Directory Browsing enabled
| | File Caching disabled
| |------------------------------------------------------
| √ | Installing package [java:openjdk21_jdk:lockVersion]
| |------------------------------------------------------------------
| | Installing [openjdk21_jdk]
| | Java version: openjdk21
| | Java type: jdk
| | Java arch: x64
| | Java os: windows
| | Java jvm-implementation: hotspot
| | Java release: latest
| | Hitting the Adoptium API to find your download.
| | https://api.adoptium.net/v3/assets/version/%5B21%2C22%29?page_size=1000&release_type=ga&vendor=eclipse&project=jdk&heap_
| | size=normal&jvm_impl=hotspot&os=windows&architecture=x64&image_type=jd
| | Exact version is [openjdk21_jdk_x64_windows_hotspot_jdk-21.0.6+7]
| | Lucky you, we found this version of Java in local artifacts!
| | The package openjdk21_jdk_x64_windows_hotspot_jdk-21.0.6+7 is already installed at C:\Users\randy\.CommandBox\serverJREs
| | /openjdk21_jdk_x64_windows_hotspot_jdk-21.0.6+7. Skipping installation. Use --force option to force install
| |------------------------------------------------------------------
| √ | Loading CFConfig into server
| |-------------------------------------------
| √ | Loading FusionReactor
| |------------------------------------
| | Your FusionReactor version [12.1.1] is already the latest, skipping installation.
| | Pin an exact FusionReactor version to skip this Forgebox check.
| | FusionReactor debug libs added.
| | Windows detected for debug libs.
| | FusionReactor will be available at the URL http://127.0.0.1:62391
| |------------------------------------
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.cs=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.annotation=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.module=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.math=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.net.spi=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.nio.channels=ALL-UNNAMED --add-opens=java.base/java.nio.channels.spi=ALL-UNNAMED --add-opens=java.base/java.nio.charset=ALL-UNNAMED --add-opens=java.base/java.nio.charset.spi=ALL-UNNAMED --add-opens=java.base/java.nio.file=ALL-UNNAMED --add-opens=java.base/java.nio.file.attribute=ALL-UNNAMED --add-opens=java.base/java.nio.file.spi=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/java.security.cert=ALL-UNNAMED --add-opens=java.base/java.security.interfaces=ALL-UNNAMED --add-opens=java.base/java.security.spec=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.base/java.text.spi=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.base/java.time.chrono=ALL-UNNAMED --add-opens=java.base/java.time.format=ALL-UNNAMED --add-opens=java.base/java.time.temporal=ALL-UNNAMED --add-opens=java.base/java.time.zone=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED --add-opens=java.base/java.util.function=ALL-UNNAMED --add-opens=java.base/java.util.jar=ALL-UNNAMED --add-opens=java.base/java.util.regex=ALL-UNNAMED --add-opens=java.base/java.util.spi=ALL-UNNAMED --add-opens=java.base/java.util.stream=ALL-UNNAMED --add-opens=java.base/java.util.zip=ALL-UNNAMED --add-opens=java.base/javax.crypto=ALL-UNNAMED --add-opens=java.base/javax.crypto.interfaces=ALL-UNNAMED --add-opens=java.base/javax.crypto.spec=ALL-UNNAMED --add-opens=java.base/javax.net=ALL-UNNAMED --add-opens=java.base/javax.net.ssl=ALL-UNNAMED --add-opens=java.base/javax.security.auth=ALL-UNNAMED --add-opens=java.base/javax.security.auth.callback=ALL-UNNAMED --add-opens=java.base/javax.security.auth.login=ALL-UNNAMED --add-opens=java.base/javax.security.auth.spi=ALL-UNNAMED --add-opens=java.base/javax.security.auth.x500=ALL-UNNAMED --add-opens=java.base/javax.security.cert=ALL-UNNAMED --add-opens=java.base/sun.net.www.protocol.https=ALL-UNNAMED --add-opens=java.desktop/com.sun.java.swing.plaf.nimbus=ALL-UNNAMED --add-opens=java.desktop/com.sun.java.swing.plaf.motif=ALL-UNNAMED --add-opens=java.desktop/com.sun.java.swing.plaf.nimbus=ALL-UNNAMED --add-opens=java.desktop/com.sun.java.swing.plaf.windows=ALL-UNNAMED --add-opens=java.desktop/sun.java2d=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED --add-opens=java.base/sun.security.rsa=ALL-UNNAMED --add-opens=java.base/sun.security.pkcs=ALL-UNNAMED --add-opens=java.base/sun.security.x509=ALL-UNNAMED --add-opens=java.base/sun.security.util=ALL-UNNAMED --add-opens=java.base/sun.util.cldr=ALL-UNNAMED --add-opens=java.base/sun.util=ALL-UNNAMED --add-opens=java.base/sun.util.locale.provider=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-exports=java.desktop/sun.java2d=ALL-UNNAMED --add-exports=java.base/sun.util=ALL-UNNAMED
WARNING: package com.sun.java.swing.plaf.nimbus not in java.desktop
Exception in thread "main" java.lang.RuntimeException: Runwar must be called with a valid path to the serverinfo.json file as the only arg
at runwar.Start.main(Start.java:39)
ERROR (5.9.1+00767)
Server process returned failing exit code [1]
bdw429s
February 26, 2025, 7:28pm
3
Sorry for the delay, the integration that posts new topics in our internal slack team seems to be broken. Firstly, you don’t need a JDK any longer to run BoxLang so you can use openjdk21
and that will work fine.
The error is because you are on an old version of CommandBox which is incompatible with the recent versions of Runwar. You need to update to CommandBox 6.x
Oh man, I should have caught that. Thanks for the reply Brad.
1 Like