簡體   English   中英

Applet Java控制台中的標准輸出

[英]stdout in Applet Java console

我簽名的Java小程序會加載一個本機DLL。 DLL將跟蹤打印到stdout。 當我在Eclipse下運行小程序時,我在Eclipse控制台中看到了這些跟蹤。 但是,當我將其作為Web瀏覽器中的applet運行時,我在Java控制台中看不到它們。 有可能嗎?

<applet name="name" id="game" archive="my.jar" code="path/to/main.class" mayscript="" title="Java"> 
    <param name="separate_jvm" value="true"> 
    <param name="java_arguments" value="-Xmx384m -Dsun.java2d.noddraw=true -XX:CompileThreshold=1500 -Xincgc -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Dcom.sun.management.jmxremote -Xss6m"> 
    <div class="nojava"> 
        <h1> 
            Please Update Java</h1> 
    </div> 
</applet> 

Windows,如果需要的話,最好是Firefox

DLL的stdout通常用於瀏覽器的stdout ,至少以我的經驗而言。 因此,如果您只想看看這些消息,那么我建議您從命令行(至少在Linux上)啟動瀏覽器,然后看看在那里打印了什么。 不知道如何在Windows上完成此操作。

重定向DLL的stdout會帶來麻煩:同一個插件進程可以執行多個頁面中的多個applet,並且由於CI / O流是按進程進行的,因此將它們重定向到一個applet將對其全部重定向。 可能可以做到這一點(在本機端使用管道和dup2 ),但是只有當小程序在非常受控的環境中執行時,才應遵循該路線,在這種情況下,您可以排除與其他小程序的不良交互。

當然,正確的解決方案是使DLL不打印到stdout,而是使用一些回調。 如果您可以訪問DLL的源代碼,那就是我想要的解決方案。 如果沒有,也許您可​​以與DLL的作者聯系。 在某些平台上(我對Linux有所了解),通過使用中介程序庫攔截和修改某些庫調用,您也許能夠獲得類似的效果,但這只是可移植的。 另一方面,本機DLL也不太容易移植,因此這可能對您有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM