java-code-runner

0.3.39 • Public • Published

This is a module for runinng Java from String inside a node server built for another project called kodr

to run tests

npm install
npm test

The java server can run independently

I use Java 1.8

to run the server

Compile using 'ant'

Run server in bin

java -cp .:../lib/servlet-api-2.5.jar:../lib/jetty-all-7.0.2.v20100331.jar RunnerServlet

The default port is 3678

The server will return a statusCode 200 for GET request to '/'.

The server will return a JSON object {stout:String, sterr:String} for POST request to '/'.

The POST body should be {name:[nameOfClass], code:[classContent]} you can also post an optional input parameter for inpout stream and a timeLimit long for setting a timelimit on running the program

example in nodejs, you can build a similar request using postman

var post_data = querystring.stringify({
    'name': 'Main',
    'code': 'public class Main {public static void main (String [] args) { System.out.println("Hello World");}}',
    input:"input stream"
});
// An object of options to indicate where to post to
http.request({
    host: '127.0.0.1',
    port: 3678,
    path: '',
    method: 'POST',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Content-Length': post_data.length // don't need to fill this in postman
    }
}, function (res) {...});

post_req.write(post_data);
post_req.end();

java dependencies are in the .java-dependency file

This code is designed for UNIX system it may be incompatible with Windows, eg. I use the ':' to speerate classpath

node wraper

The module's index.js file exposes 6 methods

  • run
  • test
  • runClass
  • stopServer
  • runServer
  • recompile which prgramatically compiles only once per process

see tests for how they work.

Things left to do

Look into runing the java server as a docker container for security

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
0.4.51beta
0.3.391latest

Version History

VersionDownloads (Last 7 Days)Published
0.4.51
0.4.31
0.4.21
0.4.11
0.4.01
0.3.391
0.3.381
0.3.372
0.3.361
0.3.351
0.3.341
0.3.331
0.3.321
0.3.311
0.3.301
0.3.291
0.3.281
0.3.271
0.3.241
0.3.231
0.3.221
0.3.211
0.3.21
0.3.11
0.3.03

Package Sidebar

Install

npm i java-code-runner

Weekly Downloads

28

Version

0.3.39

License

MIT

Last publish

Collaborators

  • drazious