[英]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.