Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

266
Views
Calling Java from Node.js

I'm trying to follow this simple tutorial about calling Java from Node.js:

My test script:

var java = require('java');
var javaLangSystem = java.import('java.lang.System');

javaLangSystem.out.printlnSync('Hello Java!');

Here is the console:

$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
...
$ npm install java

added 18 packages, and audited 19 packages in 11s

1 package is looking for funding
  run `npm fund` for details

2 high severity vulnerabilities

To address all issues, run:
  npm audit fix

Run `npm audit` for details.
$ node test.js 
/home/Projects/test-java/node_modules/java/lib/nodeJavaBridge.js:240
  var fields = SyncCall(clazz, 'getDeclaredFields')();
                                                   ^

Error: Error running instance method
java.lang.NullPointerException
    at java.base/java.util.Objects.requireNonNull(Objects.java:208)
    at java.base/java.lang.invoke.MethodHandleImpl$1.reflectiveInvoker(MethodHandleImpl.java:1660)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:131)
    at java.base/java.lang.reflect.Method.invoke(Method.java:577)

    at Java.java.import (/home/Projects/test-java/node_modules/java/lib/nodeJavaBridge.js:240:52)
    at Object.<anonymous> (/home/Projects/test-java/test.js:2:33)
    at Module._compile (node:internal/modules/cjs/loader:1103:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
    at node:internal/main/run_main_module:17:47 {
  cause: nodeJava_java_lang_NullPointerException {}
}
$ java --version
java 18.0.1 2022-04-19
Java(TM) SE Runtime Environment (build 18.0.1+10-24)
Java HotSpot(TM) 64-Bit Server VM (build 18.0.1+10-24, mixed mode, sharing)

What may be going wrong here?

I've tried to debug it and it seems that obj[syncMethodName].bind(obj)() throws a java.lang.NullPointerException at java.base/java.lang.reflect.Method.invoke(Method.java:577) when

obj == class java.lang.System
syncMethodName == 'getDeclaredFieldsSync'
about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!