Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    tuple space
    @tuplespace1:matrix.org
    [m]
    Hi i have a qq. Once cheerpj generates the javascript, can I not use just use the javascript instead of using the jar ?
    Alessandro Pignotti
    @alexp-sssup
    @tuplespace1:matrix.org The JARs are always necessary for metadata. In particular to support reflection. The are ways to reduce the size of the JARs by dropping code. https://docs.leaningtech.com/cheerpj/Startup-time-optimization
    tuple space
    @tuplespace1:matrix.org
    [m]
    hey alex - thank you.. that is not what I am suggesting.. I want to use a java library and intermix it with javascript.. can I do that ?
    once I load the jar in cheerpj can I call it from javascript ?
    Alessandro Pignotti
    @alexp-sssup
    @tuplespace1:matrix.org Yes, see here: https://docs.leaningtech.com/cheerpj/Runtime-API (cjCall / cjNew)
    Bill Mollett
    @bmollett_gitlab
    I have a question about CheerpJ Applet Runner (ver 10.5) with Chrome (97.0.4692.99 (Official Build) (64-bit)) on Debian 11. The applet is from 2004 and I'm trying to get it to start up using the Applet Runner.
    Bill Mollett
    @bmollett_gitlab
    All goes well until the applet tries to make an XML-RPC call using a small "xmlrpc.jar" library: from the Chrome Web Developer console -

    loader.js:2973 CheerpJ is initializing
    loader.js:3691 [Violation] 'message' handler took 250ms
    loader.js:235 [Violation] 'load' handler took 267ms
    loader.js:3691 [Violation] 'message' handler took 216ms
    rt.jar.js:1885 [Violation] 'setTimeout' handler took 226ms
    rt.jar.js:1885 [Violation] 'setTimeout' handler took 81ms
    loader.js:235 [Violation] 'load' handler took 212ms
    [Violation] 'complete' handler took 266ms
    rt.jar.js:1885 [Violation] 'setTimeout' handler took 61ms
    loader.js:3691 [Violation] 'message' handler took 269ms
    rt.jar.js:1885 [Violation] 'setTimeout' handler took 164ms
    loader.js:1235 [Violation] 'message' handler took 183ms
    cheerpOS.js:1753 11:59:06.216 : Utility.setDebugValue() true
    cheerpOS.js:1753

    cheerpOS.js:1753 11:59:06.225 : VdtAppApplet.init()
    cheerpOS.js:1753

    cheerpOS.js:1753 11:59:06.311 : Utility.getScreenSize() java.awt.Dimension[width=631,height=590] debugValue debugScreenSize 0.75
    cheerpOS.js:1753

    cheerpOS.js:1753 11:59:06.315 : Utility.getScreenSize() java.awt.Dimension[width=631,height=590] debugValue debugScreenSize 0.75
    cheerpOS.js:1753

    cheerpOS.js:1753 11:59:06.319 : GetProperty(): checking for System property os.name
    cheerpOS.js:1753

    cheerpOS.js:1753 11:59:06.321 : GetProperty(): checking for System property os.name
    cheerpOS.js:1753

    cheerpOS.js:1753 11:59:06.338 : VdtAbstractDataModel.constructor() Version 2001-0126 this vdt.accom.AccomDataModel@b7
    cheerpOS.js:1753

    cheerpOS.js:1753 AccomDataModel constructor *
    cheerpOS.js:1753

    cheerpOS.js:1753 11:59:06.344 : VdtAbstractDataModel.initializeDataModel()
    cheerpOS.js:1753

    cheerpOS.js:1753 11:59:06.348 : VdtConfig.getConfig() Create singleton VdtConfig object.
    cheerpOS.js:1753

    cheerpOS.js:1753 java.lang.NoClassDefFoundError: xmlrpc/SimpleXmlRpcClient
    cheerpOS.js:1753

    How can I get the Applet Runner to find class "xmlrpc/SimpleXmlRpcClient" which is in "xmlrpc.jar" ?
    bmollett@intrepid:/usr/local/g2/apache/mason (master)*$ jar tvf /usr/local/g2/apache/htdocs/lib/xmlrpc.jar
    1316 Mon Sep 20 20:26:28 PDT 2021 META-INF/MANIFEST.MF
    1508 Mon Sep 20 20:26:28 PDT 2021 META-INF/GEMSTONE.SF
    1500 Mon Sep 20 20:26:28 PDT 2021 META-INF/GEMSTONE.RSA
    0 Mon Sep 20 20:24:18 PDT 2021 META-INF/
    0 Mon Sep 20 20:23:51 PDT 2021 xmlrpc/
    677 Sat Aug 28 08:23:16 PDT 2004 xmlrpc/XmlException.class
    8842 Sat Aug 28 08:23:16 PDT 2004 xmlrpc/XmlRpcSupport.class
    4140 Sat Aug 28 08:23:16 PDT 2004 xmlrpc/JSXmlRpcApplet.class
    2227 Sat Aug 28 08:23:16 PDT 2004 xmlrpc/XmlRpcSupport$Value.class
    34679 Sat Aug 28 08:23:16 PDT 2004 xmlrpc/XmlParser.class
    791 Sat Aug 28 08:23:16 PDT 2004 xmlrpc/SimpleXmlRpcClient.class
    300 Sat Aug 28 08:23:16 PDT 2004 xmlrpc/XmlRpcException.class
    1446 Sat Aug 28 08:23:16 PDT 2004 xmlrpc/HandlerBase.class
    1251 Sat Aug 28 08:23:16 PDT 2004 xmlrpc/ServerInputStream.class
    1975 Sat Aug 28 08:23:16 PDT 2004 xmlrpc/XmlRpcApplet.class
    875 Sat Aug 28 08:23:16 PDT 2004 xmlrpc/XmlHandler.class
    1644 Sat Aug 28 08:23:16 PDT 2004 xmlrpc/XmlRpcSupport$RawXmlWriter.class
    3502 Sat Aug 28 08:23:16 PDT 2004 xmlrpc/HttpClient.class
    The applet is not publicly accessible at the moment
    Bill Mollett
    @bmollett_gitlab

    The page source:
    <!--

    Copyright 2000-2003 Phillip Riles

    #

    This file is part of Gemstone Dynamic Vision Training.

    #

    Gemstone Dynamic Vision Training is free software: you can

    redistribute it and/or modify it under the terms of the GNU General

    Public License as published by the Free Software Foundation, either

    version 3 of the License, or (at your option) any later version.

    #

    Gemstone Dynamic Vision Training is distributed in the hope that it

    will be useful, but WITHOUT ANY WARRANTY; without even the implied

    warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    See the GNU General Public License for more details.

    #

    You should have received a copy of the GNU General Public License

    along with Gemstone Dynamic Vision Training. If not, see

    http://www.gnu.org/licenses/.

    -->

    <html>
    <head><title>Gemstone DVT© Training</title></head>
    <body bgcolor="black">
    <table border=0 cellspacing=0 cellpadding=0 align=center>
    <tr><td align=center>
    <script language=javascript>
    if (self.innerWidth)
    {
    frameWidth = self.innerWidth;
    frameHeight = self.innerHeight;
    }
    else if (document.body)
    {
    frameWidth = document.body.clientWidth;
    frameHeight = document.body.clientHeight;
    }

    width = .9 frameWidth;
    height = .8
    frameHeight;

    // Check for decimal point + round down
    width = width + '';
    if(width.indexOf('.') >= 0) {
    width = width.substring(0,width.indexOf('.'));
    }
    height = height + '';
    if(height.indexOf('.') >= 0) {
    height = height.substring(0,height.indexOf('.'));
    }

    document.write('<applet codebase="/lib/" '); document.write('archive="patch.jar,collections.jar,swing.jar,xmlrpc.jar" '); document.write('code="vdt.VdtModuleApplet.class" '); document.write('width="' + width + '"'); document.write('height="' + height + '">');
    document.write("\r\n");
    </script>

    <param name="XMLRPC" value="http://intrepid.gemstonevision.org/xmlrpc">
    <param name="MODULE" value="vdt.accom.Accom">
    <param name="SESSION_ID" value="99880" >
    <param name="NEXT_PAGE" value="http://intrepid.gemstonevision.org/dvt/valley/results.html?nocache=1643572993">
    <param name="ERROR_PAGE" value="http://intrepid.gemstonevision.org/dvt/valley/error.html?nocache=1643572993">
    <param name="LEVEL" value="1">
    <param name="RECOVERY" value="0">

    Sorry, this browser cannot run the DVT© software ( Java support required ).

    </applet>

    </td></tr>
    <tr><td align=center>

    <table width="100%">
    <tr>
    <td align="left" width="33%">
    <font color="lightskyblue">
    ABRAHAM CABIDA
    </font>
    </td>
    <td align="center" width="34%">
    <font color="lightskyblue">
    <img src="/images/flipper1.gif">
    </font>
    </td>
    <td align="right" width="33%">
    <font color="lightskyblue">
    Module 1 of 5
    </font>
    </td>
    </tr>
    </table>



    </td></tr>
    </table>

    </body>
    </html>

    Any guidance is appreciated
    Bill Mollett
    @bmollett_gitlab
    Note that the applet runs with no errors using appletview (openjdk version "11.0.14" 2022-01-18) and NetBeans 12.5
    Alessandro Pignotti
    @alexp-sssup
    @bmollett_gitlab Can you provide a link to a version on a publicly accessible HTTP server? It would greatly simplify testing for us.
    Please understand that, by our policies, we cannot provide free support (as part of the CheerpJ Applet Runner extension) for applets on private networks or behind logins. We are happy to do so for commercial customers.
    Bill Mollett
    @bmollett_gitlab
    Sorry, the applet belongs to a non-profit organization (Gemstone Vision). Their server is down. I'll see if I can get it working on their droplet at Digital Ocean. Thanks
    ddyer0
    @ddyer0
    Kudos to whomever can tell me what's wrong with my first test. https://boardspace.net/cheerpj/speed.html
    the html console says Error: Could not find or load main class Speed
    ddyer0
    @ddyer0
    Ok I found it - for the next guy - the /app/ in the example is a literal
    Bruno Eberhard
    @BrunoEberhard
    Hi all. Any news on the support for Java 11 or 17?
    Alessandro Pignotti
    @alexp-sssup
    @BrunoEberhard Support for Java > 8 is in the pipeline but not currently supported. If you have a commercial use case get in touch at sales@leaningtech.com, we might be able to accelerate the project for your use case.
    hgalioulline
    @hgalioulline

    Hey everyone! We are trying to fix a bug with the CheerpJ Java Fiddle but can't figure it out. The bug is sometimes difficult to reproduce, but basically if you play around with the code and click the "Compile and Run" button a few times in between a bunch of small edits you get something like, "Error: Could not find or load main class javafiddle1.JavaFiddle". Any help would be greatly appreciated!

    Here is the most relevant function (in my opinion) for reference:

    function compileJavaCode() {
        var cb = document.getElementById("compileButton");
        cb.disabled = true;
        var console = document.getElementById("console");
        console.textContent = "> Compiling...\r\n\r\n";
        var newCode = editor.getValue();
        var packageName = "javafiddle" + (currentId++).toString();
        newCode = "package " + packageName + ";\n" + newCode;
        cheerpjAddStringFile("/str/JavaFiddle.java", newCode);
        cheerpjRunMain("com.sun.tools.javac.Main", "/app/tools.jar:/files/", "/str/JavaFiddle.java", "-d", "/files/").then(
          function (r) {
            var cb = document.getElementById("compileButton");
            cb.disabled = false;
            // Non-zero exit code means that an error has happened
            if (r == 0) {
              console.textContent = "> Running...\r\n\r\n";
              cheerpjRunMain(packageName + ".JavaFiddle", "/app/tools.jar:/files/");
            }
          }
        );
      }
    hgalioulline
    @hgalioulline
    Forgot to mention it's important to refresh the page in between your edits to the code to reproduce the bug
    Alessandro Pignotti
    @alexp-sssup
    @hgalioulline We believe this problem is already fixed. Javafiddle has been updated from CheerpJ 2.2 -> to the release candidate for CheerpJ 2.3. Please wipe out your browser cache and try again
    hgalioulline
    @hgalioulline

    Thanks! Did this update happen in the last couple of days? On Sunday I was still getting the bug, and now it seems to work :D

    Also surprising because the last update on the Github repo was about a month ago and it was documentation related. Any insight as to where I can check out the update would be great.

    hgalioulline
    @hgalioulline
    Ah okay never mind, I can see now it's the loader.js you changed whose development I assume isn't public.
    hgalioulline
    @hgalioulline

    Hello again! We've been trying to get a minimal demo going of running client-side JUnit test cases based off of your Java Fiddle example:

    cheerpjRunMain(
        "com.sun.tools.javac.Main",
        "/app/tools.jar:/files/:/app/junit-platform-console-standalone-1.8.2.jar",
        "-cp",
        "/app/junit-platform-console-standalone-1.8.2.jar",
        "/str/MainTest.java",
        "/str/Main.java",
        "-d",
        "/files/"
    ).then((r) => {
        // Non-zero exit code means that an error has happened
        if (r == 0) {
            console.textContent = "> Running...\r\n\r\n";
            cheerpjRunMain(
                "org.junit.platform.console.ConsoleLauncher",
                "/app/junit-platform-console-standalone-1.8.2.jar",
                "--classpath",
                "/files/",
                "-c",
                packageName + ".MainTest"
            );
        }
    });

    Unfortunately, we get the following error when trying to run the above:

    Uncaught ReferenceError: _c4pbMlaRcSd52fs20UnixNativeDispatcher7access0E61 is not defined
        at _c4pbMlaRcSZ42fs20UnixNativeDispatcher6accessE60 (rt.jar.sun.nio.js:493:18875)
        at N3sun3nio2fs23LinuxFileSystemProvider._c4pbMlaRcSd12fs22UnixFileSystemPh0LanpWVllOOjiqij5vVd [as v33] (rt.jar.sun.nio.js:475:15446)
        at _h4VaSkWovJxGSqK_HSqiPtCHinj5HNd (rt.jar.java.nio.file.js:210:21411)
        at _c4pbAiq2cqUaClWxcyp0tform7console7opeWZZs18CommandLineOgnHRcyp1mbda$getExistingAddieWJagwn3cGK0dW0HxZuecHKpTNon (junit-platform-conso…2.jar.js:4006:10036)
        at N11CRCb1a82252._c4Vanln3kxqnaVTDUn$eH0Kxn (eval at _c4pbMBWAF72ibuqytpquG0qO140GX4qjXTaij5TJd (VM106808 rt.jar.js:1886:19247), <anonymous>:1:488)
        at N4java4util6stream21ReferencePipeline$2$1._i4pbNkWlcaVakhoJD9krbrerJarkYdXcsdHVTFToGGaXZKNn (rt.jar.java.util.stream.js:1329:436)
        at N4java4util30ArrayList$ArrayListSpliterator._i4pbN6PYArrayList$jLq2Spliterator16forEachRemaieGSWE4 (rt.jar.java.util.js:596:2455)
        at N4java4util6stream19ReferencePipeline$2._i4pbNkWlcaVak_ntTUwG0ueGWukYdXcsdbVGZdMyZKJx9o [as v15] (rt.jar.java.util.stream.js:1444:10534)
        at N4java4util6stream19ReferencePipeline$2._i4pbNkWlcaVakFotTUwG0ueGWukYdXcsdrDUveWJwZaNZdMyZKJxTo [as v14] (rt.jar.java.util.stream.js:1444:9959)
        at N4java4util6stream11ReduceOps$3._i4pbNkWlcaVak3mtn_kXaLab6JKpsji0eutubSqbmrWsarr0mHaS4Dd (rt.jar.java.util.stream.js:1347:376)
    _c4pbMlaRcSZ42fs20UnixNativeDispatcher6accessE60    @    rt.jar.sun.nio.js:493
    _c4pbMlaRcSd12fs22UnixFileSystemPh0LanpWVllOOjiqij5vVd    @    rt.jar.sun.nio.js:475
    _h4VaSkWovJxGSqK_HSqiPtCHinj5HNd    @    rt.jar.java.nio.file.js:210
    _c4pbAiq2cqUaClWxcyp0tform7console7opeWZZs18CommandLineOgnHRcyp1mbda$getExistingAddieWJagwn3cGK0dW0HxZuecHKpTNon    @    junit-platform-conso…e-1.8.2.jar.js:4006
    _c4Vanln3kxqnaVTDUn$eH0Kxn    @    VM107463:1
    _i4pbNkWlcaVakhoJD9krbrerJarkYdXcsdHVTFToGGaXZKNn    @    rt.jar.java.util.stream.js:1329
    _i4pbN6PYArrayList$jLq2Spliterator16forEachRemaieGSWE4    @    rt.jar.java.util.js:596
    _i4pbNkWlcaVak_ntTUwG0ueGWukYdXcsdbVGZdMyZKJx9o    @    rt.jar.java.util.stream.js:1444
    _i4pbNkWlcaVakFotTUwG0ueGWukYdXcsdrDUveWJwZaNZdMyZKJxTo    @    rt.jar.java.util.stream.js:1444
    _i4pbNkWlcaVak3mtn_kXaLab6JKpsji0eutubSqbmrWsarr0mHaS4Dd    @    rt.jar.java.util.stream.js:1347
    _i4pbNkWlcaVak7ntTUwG0ueGWukYdXcsdbprfWcfWeH3n    @    rt.jar.java.util.stream.js:1444
    _i4pbNkWlcaVakJnt9$krbrerJarkYdXcsdXUGZcbinS3np    @    rt.jar.java.util.stream.js:1227
    eval    @    VM107467:3
    runContinuationStack    @    VM106803 loader.js:491
    cheerpjSchedule    @    VM106803 loader.js:1271
    For a little bit of extra info, we used the cheerpjfy Python script to create a JavaScript version of the JUnit standalone launcher and did see a few fallbacks onto legacy code generation. Also, to keep it as simple as possible, Main.java is a basic hello world program and MainTest.java looks like this:
    import java.io.ByteArrayOutputStream;
    import java.io.PrintStream;
    import org.junit.jupiter.api.Assertions;
    import org.junit.jupiter.api.Test;
    public class MainTest {
        private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
        private final PrintStream originalOut = System.out;
    
        @Test
        public void testOutput() {
            System.setOut(new PrintStream(outContent));
            Main.main(new String[0]);
            Assertions.assertEquals("Hello World!", outContent.toString());
            System.setOut(originalOut);
        }
    }
    Alessandro Pignotti
    @alexp-sssup
    @hgalioulline The problem is already fixed in CheerpJ 2.3
    hgalioulline
    @hgalioulline
    Thanks! Now we're getting:
    No TestIdentifier with unique ID [[engine:junit-jupiter]/[class:javafiddle0.MainTest]] has been added to this TestPlan.
    Alessandro Pignotti
    @alexp-sssup
    @hgalioulline That messages is not generated by the CheerpJ runtime, but by one of the java libraries or framework you are using. Please make sure the program actually works with native java.
    hgalioulline
    @hgalioulline
    Thank you for your quick response! Unfortunately it seems like this error only happens with Cheerpj, I've replicated it with no issues using native java with the two commands:
    javac -cp app/junit-platform-console-standalone-1.8.2.jar str/MainTest.java str/Main.java -d files
    java -jar app/junit-platform-console-standalone-1.8.2.jar --classpath files -c javafiddle0.MainTest
    hgalioulline
    @hgalioulline
    I've also tried using cheerpjRunJar("/app/junit-platform-console-standalone-1.8.2.jar", "-cp", "/files/", "-c", packageName + ".MainTest"); but get the same TestIdentifier error
    Here is the entire stack trace from the JUnit console launcher when run using Cheerpj:
    Failures (1):
      JUnit Jupiter
        => org.junit.platform.commons.PreconditionViolationException: No TestIdentifier with unique ID [[engine:junit-jupiter]/[class:javafiddle0.MainTest]] has been added to this TestPlan.
           org.junit.platform.commons.util.Preconditions.condition(Unknown Source)
           org.junit.platform.launcher.TestPlan.getTestIdentifier(Unknown Source)
           org.junit.platform.launcher.core.ExecutionListenerAdapter.executionStarted(Unknown Source)
           org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(Unknown Source)
           org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(Unknown Source)
           CRCe7c57066.accept(Unknown Source)
           java.util.ArrayList.forEach(Unknown Source)
           org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(Unknown Source)
           org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(Unknown Source)
           CRCb9b7a5c8.execute(Unknown Source)
           [...]
    
    Test run finished after 481 ms
    [         2 containers found      ]
    [         0 containers skipped    ]
    [         2 containers started    ]
    [         0 containers aborted    ]
    [         1 containers successful ]
    [         1 containers failed     ]
    [         0 tests found           ]
    [         0 tests skipped         ]
    [         0 tests started         ]
    [         0 tests aborted         ]
    [         0 tests successful      ]
    [         0 tests failed          ]
    Compared to running natively:
    Test run finished after 58 ms
    [         3 containers found      ]
    [         0 containers skipped    ]
    [         3 containers started    ]
    [         0 containers aborted    ]
    [         3 containers successful ]
    [         0 containers failed     ]
    [         1 tests found           ]
    [         0 tests skipped         ]
    [         1 tests started         ]
    [         0 tests aborted         ]
    [         1 tests successful      ]
    [         0 tests failed          ]
    hgalioulline
    @hgalioulline
    Seems like there is a container it can't find. I have no idea but maybe the Cheerpj directory structure is a little different?
    Alessandro Pignotti
    @alexp-sssup
    @hgalioulline Please give us a link to a fully reproducible example that shows the problem. There is nothing obviously wrong.
    16 replies
    ibelieveczr
    @10142904
    Hi, I succeeded in converting the java program to javascript, but there are some errors in running it
    ·loader.js:503 Uncaught Error: this should be unreachable
    at jnaBA (jni.js:formatted:146642:11)
    at 00486b1a:0xcaf9e
    at _Java_sun_font_SunLayoutEngine_nativeLayout (jni.js:formatted:110773:21)
    at _c4pbM7nEHtZuDolvtjaMd1KxJbsdrTDdWesfXrtemp (rt.jar.sun.font.js:518:2045)
    at N3sun4font15SunLayoutEngine._c4pbMJnEHtZuDolvtjaMd1KxJbsdH$Irme8o (rt.jar.sun.font.js:523:5041)
    at N3sun4font24GlyphLayout$EngineRecord._c4pbMhoEHtZKno4c2ZrjaMd1KVxJbsdXkHGt0G$srtiSNn [as v12] (rt.jar.sun.font.js:402:2019)
    at N3sun4font11GlyphLayout._c4pbMtnEHtZuDn4c2ZrjaMd1K$srgiSNn [as v11] (rt.jar.sun.font.js:72:4970)
    at N3sun4font23ExtendedTextSourceLabel._c4pbMtnEHtZK9T31erZaXqlX1eBbsfDjqaXcVqebWeb4RNDn [as v49] (rt.jar.sun.font.js:730:9201)
    at _c4pbMtnEHtZK9T31erZaXqlX1eBbs5CjqaXsUbXe4RNnn (rt.jar.sun.font.js:730:8641)
    at N3sun4font23ExtendedTextSourceLabel._c4pbMtnEHtZK9T31erZaXqlX1eBbs1DjqaXsDVqebWerPJbIaWYMdvZGKxTo [as v45] (rt.jar.sun.font.js:730:5923)·
    Alessandro Pignotti
    @alexp-sssup
    @10142904 Please make sure to be using CheerpJ 2.3, this error might already be fixed. If not, please publish a minimal reproducible example on a publicly accessible URL
    5 replies
    Alessandro Pignotti
    @alexp-sssup
    @10142904 Apologies for taking a while to reply, we are extremely busy with commercial projects at this time. I have downloaded the archive and the application starts correctly. Can you describe the exact procedure to reproduce the bug?
    36 replies
    ibelieveczr
    @10142904
    image.png
    image.png
    drwangelette
    @drwangelette
    hello. can you point me to some videos of how to get started from the beginnning point of downloading the zip to creating my first conversion of an applet to html5 please
    Carlo Piovesan
    @carlopi
    Hi!
    There are no video guide available, to get started I would recommend taking a look here: https://docs.leaningtech.com/cheerpj/Getting-Started, taking a Java 8 project you know, integrating it in a simple HTML file, and see it load with CheerpJ. Once the basics are in place, next comes AOT compilation via the cheerpjfy script and iterations of the HTML integration.
    Cameron Weibel
    @cameronweibel
    Hi @alexp-sssup, is there a way to directly access the output of cheerpjRunMain() without accessing interacting through the console as is done in https://javafiddle.leaningtech.com/? Ideally we would have something like let codeOutput = await cheerpjRunMain(...);
    Alessandro Pignotti
    @alexp-sssup
    No, the output is send by Java code to the stdout / stderr. CheerpJ runs code as native would.
    There might be Java side solutions to achieve what you want, but it's outside the scope of CJ itself
    PneuC
    @PneuC

    Hi.
    I'm testing a executable jar which uses *javax.imageio.ImageIO" to read image files. When I deploy it on the web, it failed to display any graphics. And I find command line logs like this:

    ::ffff:127.0.0.1 - - [13/Jul/2022 12:55:06] code 404, message File not found
    ::ffff:127.0.0.1 - - [13/Jul/2022 12:55:06] "HEAD /META-INF/services/javax.imageio.spi.ImageOutputStreamSpi HTTP/1.1" 404 -
    ::ffff:127.0.0.1 - - [13/Jul/2022 12:55:06] code 404, message File not found
    ::ffff:127.0.0.1 - - [13/Jul/2022 12:55:06] "HEAD /META-INF/services/javax.imageio.spi.ImageReaderSpi HTTP/1.1" 404 -
    ::ffff:127.0.0.1 - - [13/Jul/2022 12:55:06] code 404, message File not found
    ::ffff:127.0.0.1 - - [13/Jul/2022 12:55:06] "HEAD /META-INF/services/javax.imageio.spi.ImageWriterSpi HTTP/1.1" 404 -
    ::ffff:127.0.0.1 - - [13/Jul/2022 12:55:06] code 404, message File not found
    ::ffff:127.0.0.1 - - [13/Jul/2022 12:55:06] "HEAD /META-INF/services/javax.imageio.spi.ImageTranscoderSpi HTTP/1.1" 404 -
    ::ffff:127.0.0.1 - - [13/Jul/2022 12:55:06] code 404, message File not found
    ::ffff:127.0.0.1 - - [13/Jul/2022 12:55:06] "HEAD /META-INF/services/javax.imageio.spi.ImageInputStreamSpi HTTP/1.1" 404 -

    Does it means javax.imageio.ImageIO is not supported? How can I fix the problem? I'm using Java 8 and CheerpJ 2.3