← ClaudeAtlas

boxlang-java-integrationlisted

Use this skill when integrating BoxLang with Java: createObject, static method calls, type conversion, importing classes, passing closures as functional interfaces, including JARs, JSR-223 scripting, or using Java libraries from BoxLang code.
ortus-boxlang/skills · ★ 0 · AI & Automation · score 58
Install: claude install-skill ortus-boxlang/skills
# BoxLang Java Integration ## Overview BoxLang compiles to Java bytecode and runs on JRE 21+. It has 100% Java interoperability — any Java library, class, or framework can be used directly from BoxLang code. Type conversion between BoxLang and Java types is automatic in most cases. ## Creating Java Objects Prefer `new java:fully.qualified.ClassName()` over `createObject()`. Both work, but the `new java:` syntax is more concise and idiomatic BoxLang. ```boxlang // PREFERRED — new java: syntax var list = new java:java.util.ArrayList() var map = new java:java.util.HashMap() var sb = new java:java.lang.StringBuilder() // Also valid — createObject (verbose, legacy style) var list = createObject( "java", "java.util.ArrayList" ).init() var map = createObject( "java", "java.util.HashMap" ).init() // With constructor args var list = new java:java.util.ArrayList( 100 ) // initialCapacity var sb = new java:java.lang.StringBuilder( "Hello" ) ``` > **Tip:** When you need a class frequently in a file, use `import java:` at the > top (see below) so you can refer to it by short name. ## Static Methods and Fields **Best practice: import the class, then call statics directly.** Avoid repeating `createObject()` on every call — it creates a new wrapper each time. ```boxlang // PREFERRED — import once, call freely import java:java.util.UUID import java:java.lang.Math import java:java.lang.System var id = UUID.randomUUID().toString() var pi = Math.PI var sqrt2 = M