зеркало из https://github.com/mozilla/pluotsorbet.git
21e5973901 | ||
---|---|---|
certs | ||
classfile | ||
java | ||
libs | ||
midp | ||
style | ||
tests | ||
tools | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
Makefile | ||
README.md | ||
arrays.js | ||
classes.js | ||
classinfo.js | ||
context.js | ||
desktop-ui.js | ||
dumplog.py | ||
frame.js | ||
game-ui.js | ||
index.html | ||
index.js | ||
instrument.js | ||
jsshell.js | ||
jvm.js | ||
legacy.js | ||
main.html | ||
main.js | ||
manifest.webapp | ||
native.js | ||
opcodes.js | ||
override.js | ||
runtime.js | ||
signature.js | ||
string.js | ||
timer.js | ||
util.js | ||
vm.js |
README.md
j2me.js
j2me.js is a J2ME virtual machine in JavaScript.
The current goals of j2me.js are:
- Run MIDlets in a way that emulates the reference implementation of phone ME Feature MR4 (b01)
- Keep j2me.js simple and small: Leverage the phoneME JDK/infrastructre and existing Java code as much as we can, and implement as little as possible in JavaScript
Building j2me.js
Make sure you have a JRE installed
Get the j2me.js repo if you don't have it already
git clone https://github.com/andreasgal/j2me.js
Build using make:
cd j2me.js
make
Running MIDlets, tests
To run a MIDlet:
python tests/httpServer.py &
http://localhost:8000/index.html?jad=ExampleApp.jad&jars=ExampleApp.jar&midletClassName=com.example.yourClassNameHere
URL parameters:
- See full list at libs/urlparams.js
- Default
midletClassName
if none specified isRunTests
If testing sockets, 4 servers are necessary:
python tests/httpServer.py &
python tests/echoServer.py &
cd tests && python httpsServer.py &
cd tests && python sslEchoServer.py &
To run specific tests (e.g. TestSystem and TestRC4):
python tests/httpServer.py &
http://localhost:8000/index.html?args=java/lang/TestSystem,javax/crypto/TestRC4
Full list of RunTests tests available in the tests/Testlets.java generated file
There's no UI to enable certain privileges on Desktop that MIDlets might need. Use Myk's tcpsocketpup addon to accomplish that
Continuous integration:
- Uses Travis
- Runs automation.js which uses Casper.js testing framework and slimer.js (Gecko backend for casper.js)
make test
gfx tests use image comparison; output should match reference
Logging
See logConsole
and logLevel
URL params in libs/console.js
Running j2me.js in the SpiderMonkey shell
-
Download the SpiderMonkey shell
-
Execute the jsshell.js file as follows:
js jsshell.js package.ClassName