gpt4 book ai didi

java - Applet Java 控制台中的标准输出

转载 作者:行者123 更新时间:2023-12-02 00:15:23 27 4
gpt4 key购买 nike

我签名的 Java 小程序加载 native DLL。 DLL 将跟踪信息打印到标准输出。当我在 Eclipse 下运行小程序时,我在 Eclipse 控制台中看到这些跟踪。但当我在网络浏览器中将其作为小程序运行时,我在 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 会带来麻烦:来自多个页面的多个小程序可以由同一插件进程执行,并且由于 C I/O 流是每个进程的,因此将它们重定向为一个小程序可以为所有人重定向它们。它可能可以完成(在 native 端使用管道和 dup2 ),但是如果小程序在非常受控的环境中执行,您应该只遵循该路线,在这种环境中您可以排除与其他小程序。

当然,正确的解决方案是让 DLL 不打印到标准输出,而是使用一些回调。如果您有权访问 DLL 的源代码,这就是我更喜欢的解决方案。如果没有,也许您可​​以与 DLL 的作者联系。在某些平台上(我了解 Linux),您可能能够通过使用插入器库拦截和修改某些库调用来获得类似的效果,但这绝不是可移植的。另一方面, native DLL 也不太可移植,因此这可能适合您。

关于java - Applet Java 控制台中的标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11948695/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com