从 jre 1.6u10 开始,浏览器集成使用了所谓的“下一代插件”。
一些旧的应用程序与它不兼容,并且(在 Windows 上)可以在控制面板、java、高级、Java 插件中禁用它,取消选中“启用下一代 Java 插件(需要重新启动浏览器)” ”。
问题是有时这个检查是灰色的,即使你有管理员权限并以管理员身份运行,它也不是不可检查的。
任何解决方法来解决这个问题?
更新:
我在一些具有不同操作系统、浏览器和 java 版本的机器上做了一些测试。
最初我认为问题是 w 7 或者它是 64 位操作系统的事实,但是有一个案例(案例 3)否定了这个假设。
所以机器上有一些“其他”决定这个选项变灰。
测试操作系统浏览器 JRE 版本 状态
1 W 7 64 (Home) IE 9 7u2 64 变灰
2 W 7 64 (Bus) IE 8 6u27 64 变灰
3 W 7 64 (Bus) IE 9 6u22 64 NOT 变灰
我正在使用Virtualbox 4.1.8 虚拟化的 Debian Squeeze 6.0.4 x64 上运行的小型 Java EE 1.7.0 / Tomcat 7.0.26 应用程序进行 HTTP 负载测试基准测试(使用Apache Benchmark和Siege)。计算机主机是 Ubuntu 11.10 x64。
我在 Tomcat 中修改了这些参数server.xml:
<Connector
port="8080"
protocol="HTTP/1.1"
connectionTimeout="200000"
redirectPort="8443"
acceptCount="2000"
maxThreads="150"
minSpareThreads="50" />
Run Code Online (Sandbox Code Playgroud)
在服务器上执行的应用程序大约需要 300 毫秒。
这个应用程序运行良好,直到达到一定数量的并发连接,例如:
ab -n 500 -c 150 http://xx.xx.xx.xx:8080/myapp/
ab -n 1000 -c 50 http://xx.xx.xx.xx:8080/myapp/
siege -b -c 100 -r 20 http://xx.xx.xx.xx:8080/myapp/
Run Code Online (Sandbox Code Playgroud)
socket connection timed out发生了很多事情,这使主机处理器完全过载(但 VM 内的 CPU 负载是正常的)。
htop在主机上执行一个操作,我可以看到 Virtualbox 进程在 300% CPU 下运行,并且即使在负载测试完成后也 …
我有一个在 Windows 2008 中作为 JVM 运行的应用程序。我想监视它的内存使用情况,并在内存使用量达到特定阈值时收到一封电子邮件。是否有免费的实用程序或方法可以执行此操作?
我正在尝试使用 Java 在 AS400 操作系统中调用一个程序以作为另一个用户运行(通过获取输入用户/密码)。就像runas在 Windows 或sudoUnix 中一样——我们可以在 AS400 操作系统中做什么?
我能够调用像基本的Unix命令find,cd,ls通过对Java AS400等。
我对提供给我的实验性 AS400 沙箱的访问权限非常有限。所以我不确定sudo当以管理员身份运行时,通过 java 的命令是否有效。
我认为在 AS400 控制台上STRQSH或者QSH是自定义构建程序,并且不支持所有 Unix 命令。因此,我对什么是正确的和音乐会的做法一无所知。任何指导将不胜感激——业内人士是如何做到的?AS400 中是否有任何sudo/runas等效项?IBM 有自己的外壳吗?
Java 应用程序不时因 PermGen 空间错误而死亡,但是当我查看内存使用情况时,我所知道的似乎很低。
它是一个 Tomcat 应用程序,加上运行着 SOLR 服务器(在同一个 tomcat 下)。
JVM 参数catalina.sh:
-Xms1024m
-Xmx2048m
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/path/to/logs
Run Code Online (Sandbox Code Playgroud)
错误catalina.out:
java.lang.OutOfMemoryError: PermGen space
Dumping heap to /path/to/logs/java_pid22335.hprof ...
Heap dump file created [107041478 bytes in 1.823 secs]
Exception in thread "pool-5-thread-1" java.lang.OutOfMemoryError: PermGen space
Run Code Online (Sandbox Code Playgroud)
现在第一个奇怪的是内存转储只有 100Mb,而堆限制是 2048Mb。当我曾经有“正确的”内存不足错误时,转储文件的大小接近堆限制。
第二件奇怪的事情是 显示的内存使用情况jmap -heap 22335似乎很正常(运行此命令时,java 应用程序仍处于关闭状态):
Attaching to process ID 22335, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 11.3-b02
using thread-local object allocation.
Parallel GC with …Run Code Online (Sandbox Code Playgroud) 我们将 java 版本从 openjdk jre 1.7 切换到 sun jre 1.7,现在启动 tomcat 出现以下错误:
SEVERE: Begin event threw error
java.lang.NoClassDefFoundError: org.apache.catalina.mbeans.ServerLifecycleListener
at java.lang.Class.initializeClass(libgcj.so.10)
at java.lang.Class.newInstance(libgcj.so.10)
at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:206)
at org.apache.tomcat.util.digester.Rule.begin(Rule.java:153)
at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1356)
at gnu.xml.stream.SAXParser.parse(libgcj.so.10)
at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)
at org.apache.catalina.startup.Catalina.load(Catalina.java:524)
at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
at java.lang.reflect.Method.invoke(libgcj.so.10)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.ClassNotFoundException: javax.management.modelmbean.ModelMBeanNotificationBroadcaster not found in org.apache.catalina.loader.StandardClassLoader{urls=[file:/opt/apache-tomcat-6.0.35/lib/,file:/opt/apache-tomcat-6.0.35/lib/el-api.jar,file:/opt/apache-tomcat-6.0.35/lib/jasper-el.jar,file:/opt/apache-tomcat-6.0.35/lib/tomcat-i18n-fr.jar,file:/opt/apache-tomcat-6.0.35/lib/jsp-api.jar,file:/opt/apache-tomcat-6.0.35/lib/catalina.jar,file:/opt/apache-tomcat-6.0.35/lib/jasper.jar,file:/opt/apache-tomcat-6.0.35/lib/servlet-api.jar,file:/opt/apache-tomcat-6.0.35/lib/catalina-tribes.jar,file:/opt/apache-tomcat-6.0.35/lib/catalina-ha.jar,file:/opt/apache-tomcat-6.0.35/lib/tomcat-dbcp.jar,file:/opt/apache-tomcat-6.0.35/lib/tomcat-coyote.jar,file:/opt/apache-tomcat-6.0.35/lib/tomcat-i18n-ja.jar,file:/opt/apache-tomcat-6.0.35/lib/ecj-3.7.jar,file:/opt/apache-tomcat-6.0.35/lib/catalina-ant.jar,file:/opt/apache-tomcat-6.0.35/lib/tomcat-i18n-es.jar,file:/opt/apache-tomcat-6.0.35/lib/annotations-api.jar], parent=gnu.gcj.runtime.SystemClassLoader{urls=[file:/opt/apache-tomcat-6.0.35/bin/bootstrap.jar], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}}
at java.net.URLClassLoader.findClass(libgcj.so.10)
at java.lang.ClassLoader.loadClass(libgcj.so.10)
at java.lang.ClassLoader.loadClass(libgcj.so.10)
at java.lang.VMClassLoader.defineClass(libgcj.so.10)
at java.lang.ClassLoader.defineClass(libgcj.so.10)
at java.security.SecureClassLoader.defineClass(libgcj.so.10)
at java.net.URLClassLoader.findClass(libgcj.so.10)
at java.lang.ClassLoader.loadClass(libgcj.so.10)
at java.lang.ClassLoader.loadClass(libgcj.so.10)
at java.lang.VMClassLoader.defineClass(libgcj.so.10)
at java.lang.ClassLoader.defineClass(libgcj.so.10)
at java.security.SecureClassLoader.defineClass(libgcj.so.10)
at java.net.URLClassLoader.findClass(libgcj.so.10) …Run Code Online (Sandbox Code Playgroud) 如何设置 GNU/Linux 机器以自动更新较新版本的 Java 运行时环境 (JRE)?困难在于想要使用较新版本的 Java(目前为 Java 7)并且还需要合理地更新错误修复,尤其是安全更新,而无需过多的手动工作。
您可以依赖 O/S 发行版,但它们自然是保守的,因此仅提供旧 Java 版本的错误修复版本。RedHat 6 上没有 Java 7。
您可以从 Oracle 网站手动下载 JRE,并将您的JAVA_HOME环境变量设置为指向它。但是,当您希望更新企业中的多台机器时,这是不切实际的。
例如,是否有一种实用的方法可以在 RedHat 6 上使用 Java 7 并在 Oracle 发布错误修复时自动(或半自动)更新 Java 7 JRE?
我已将 Huge Pages 配置为与 Java 一起使用,尽管我对 /proc/meminfo 中的记帐有疑问,但它似乎运行良好。为了显示
# grep HugePages /proc/meminfo
AnonHugePages: 274432 kB
HugePages_Total: 1008
HugePages_Free: 596
HugePages_Rsvd: 594
HugePages_Surp: 0
Run Code Online (Sandbox Code Playgroud)
我的问题涉及“免费”和“Rsvd”数字 - 为什么它们加起来不等于 1008 的“总数”?它们实际上加起来是 1190。我在这里不明白什么?
我创建了一个简单的 Web 应用程序,它由一个带有 html、css、js 的目录组成。没有服务器代码。出于复杂的原因,我的管理员坚持将其转换为.war文件,以便在tomcat上轻松部署。同样,该应用程序根本不包含任何 Java 代码。我没有用 ant 或 eclipse 创建它。
我尝试创建一个存档:
jar cvf mywarfile.war *
Run Code Online (Sandbox Code Playgroud)
这确实创建了一个战争文件。但是,当我在 tomcat 上部署此战争时,它似乎不起作用。Tomcat 会自动将 war 文件解压缩到一个目录中,但它不会通过 Web 服务器变为可用。我想这与我的战争不包含目录WEB-INF和META-INF.
有没有一种简单的方法可以将静态客户端 Web 应用程序转换为可部署的战争文件?
我有一个奇怪的问题。每次我停止 Tomcat 时,SSH 都会变得很慢,几乎完全没有响应。SSH 接受任何命令需要一分钟甚至更长时间。当我终于再次启动 Tomcat 时,一切都恢复正常。
这是在非常繁忙的服务器上发生的。问题是由于应用程序升级,我需要经常停止Tomcat。升级通常需要几秒钟,但在这里需要将近 10 分钟,因此我们遇到了不必要的停机时间。
我看到的一件事是,当我停止 Tomcat 时top,会ksoftirqd/X以 100% 的 CPU显示很多进程。这可能是问题吗?
内核版本是: 2.6.18-308.11.1.el5
红帽版本是: Red Hat Enterprise Linux Server release 5.9 (Tikanga)
知道为什么会这样吗?
java ×10
tomcat ×5
linux ×3
debian ×1
ibm ×1
ibm-midrange ×1
jsp ×1
load-testing ×1
memory ×1
memory-usage ×1
monitoring ×1
permgen ×1
redhat ×1
shell ×1
solr ×1
ssh ×1
virtualbox ×1
web-server ×1