You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
java2script 3.3.1-v3
issues/205
ThreadPoolExecutor not waiting one microtick to initiate jobs --
resulting in unpredictable, incomplete handling of 0-delay tasks.
Minimum set to 1 ms. See test.Test_Exec
Copy file name to clipboardExpand all lines: README.md
+11-5Lines changed: 11 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,8 @@ java2script/java2script is the overall master of the project. However, all activ
5
5
These notes are for Java developers who want to convert their Java applets or Java applications to
6
6
JavaScript, allowing continued, simultaneous one-source development of both Java and JavaScript.
7
7
8
+
A discussion of application limitations and features is at https://github.com/BobHanson/java2script/blob/master/sources/net.sf.j2s.core/dist/swingjs/differences.txt
9
+
8
10
Developers of java2script/SwingJS itself should read README-developers.md
9
11
10
12
Bob Hanson (hansonr@stolaf.edu)
@@ -56,27 +58,31 @@ In the author's own words, "There are Java APIs that are impossible to implement
56
58
57
59
https://www.leaningtech.com/cheerpj/ "CheerpJ converts Java applications or libraries into JavaScript. Works on bytecode, does not require access to the source code. Compatible with 100% of Java including reflection and dynamic classes. Existing Java archives can be converted to Web applications effortlessly"
58
60
59
-
This sounds terrific. Very straightforward -- just convert the Java class files to JavaScript. I don't doubt that most of what is written here is true. I am dubious about that "100%" claim, as there are plenty of problems in Java that would take considerably more work than just using class files directly. The Java Reporter demonstration at https://www.leaningtech.com/cheerpj/demos/ crashed both Firefox and Chrome for me, so I cannot really evaluate what I see here.
61
+
This sounds terrific. And truly it is. I am very impressed! Basically run the Java byte code in JavaScript. The Java Reporter demonstration at https://www.leaningtech.com/cheerpj/demos/ crashed both Firefox and Chrome for me, so I cannot really evaluate what I see here. But I have played with the JFiddle at https://javafiddle.leaningtech.com/, and it is pretty amazing.
60
62
61
63
The primary differences between java2script/SwingJS and CheerpJ, to the best of my knowledge, include:
62
64
63
-
- implementing a true HTML5 UI rather than just painting a canvas the way Java does
65
+
- fast start-up time. SwingJS applications generally start within a second or two, sometimes within 100 ms
66
+
- small downloads, anywhere from about 800K for a small non-GUI program to 10 MB for a full-blown Swing application (JSmol)
67
+
- class-level just-in-time dynamic class loading; no need to retrieve entire JAR files just for a few methods
68
+
- leveraging features of HTML5 and modern JavaScript rather than just painting a canvas the way Java does natively
64
69
- delivering an easily interpretable and debuggable JavaScript translation of Java classes, with little or no obscurification (unless that is desired)
65
-
- well-designed JavaScript-friendly Java core classes that leverage the considerable power of HTML5 rather than ignoring that completely
70
+
- well-designed JavaScript-friendly Java core classes that leverage the considerable power of JavaScript
66
71
- open source and completely extensible
67
72
68
73
# History - 2019-
69
74
70
-
SwingJS is now more than just "Swing"-JS. AWT applets and applications are now supported. A test suite of over 500 AWT applets has been used to refine the AWT runtime classes with great success. Many thanks to Karsten Blankenagel (University of Wuppertal) for access to this source code set.
75
+
SwingJS is now more than just "Swing"+JavaScript. AWT applets and applications are now supported. A test suite of over 500 AWT applets has been used to refine the AWT runtime classes with great success. Many thanks to Karsten Blankenagel (University of Wuppertal) for access to this source code set.
71
76
72
77
Examples include:
73
78
74
79
MathePrisma (http://www.matheprisma.uni-wuppertal.de/) This site is still using the Java applets as of 2019.03.12; JavaScript versions still in development.
Current development "Version 3 development master" involves a completely rewritten transpiler (2017) “CompilationParticipant” that follows the Eclipse Java compiler. The implementation nearly perfectly emulates the Java Virtual Machine. It includes fully qualified methods, compile-time method binding, generic methods and classes, Java 8 lambda functions and streams, Java reflection and dynamic class loading for efficient modular just-in-time performance, Java Swing components, modal and nonmodel dialogs, audio, jpdf, the AWT event thread, and many other added packages. Java applications and applets can both be run in JavaScript in any browser.
0 commit comments