标签: java

Windows 7 上的 Java 运行时环境,禁用“启用下一代 Java 插件”

从 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 变灰

java

5
推荐指数
1
解决办法
6056
查看次数

Virtualbox HTTP 负载测试,主机 CPU 过载问题

我正在使用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 下运行,并且即使在负载测试完成后也 …

debian tomcat java virtualbox load-testing

5
推荐指数
1
解决办法
1160
查看次数

如何监视基于 Windows 的 JVM 的内存使用情况并在它变得过高时触发警报?

我有一个在 Windows 2008 中作为 JVM 运行的应用程序。我想监视它的内存使用情况,并在内存使用量达到特定阈值时收到一封电子邮件。是否有免费的实用程序或方法可以执行此操作?

monitoring windows-server-2008 java memory-usage

5
推荐指数
1
解决办法
3万
查看次数

AS400 IBM iSeries 上的“runas”或“sudo”等价物

我正在尝试使用 Java 在 AS400 操作系统中调用一个程序以作为另一个用户运行(通过获取输入用户/密码)。就像runas在 Windows 或sudoUnix 中一样——我们可以在 AS400 操作系统中做什么?

我能够调用像基本的Unix命令find,cd,ls通过对Java AS400等。

我对提供给我的实验性 AS400 沙箱的访问权限非常有限。所以我不确定sudo当以管理员身份运行时,通过 java 的命令是否有效。

我认为在 AS400 控制台上STRQSH或者QSH是自定义构建程序,并且不支持所有 Unix 命令。因此,我对什么是正确的和音乐会的做法一无所知。任何指导将不胜感激——业内人士是如何做到的?AS400 中是否有任何sudo/runas等效项?IBM 有自己的外壳吗?

ibm shell java ibm-midrange

5
推荐指数
0
解决办法
2168
查看次数

Java 中的 PermGen 错误,而内存使用率似乎很低

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)

tomcat java permgen solr

5
推荐指数
1
解决办法
4668
查看次数

从openjdk切换到sun java后Tomcat ClassNotFoundException

我们将 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)

tomcat java

5
推荐指数
2
解决办法
3万
查看次数

在 GNU/Linux 上自动更新较新的 JRE

如何设置 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?

linux java automatic-updates

5
推荐指数
1
解决办法
1490
查看次数

Linux 大页面使用统计

我已将 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。我在这里不明白什么?

linux memory java

5
推荐指数
1
解决办法
6328
查看次数

从静态 web 目录创建 tomcat war 文件

我创建了一个简单的 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 java web-server jsp

5
推荐指数
1
解决办法
1万
查看次数

停止Tomcat后SSH无响应,ksoftirqd CPU使用率高

我有一个奇怪的问题。每次我停止 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)

知道为什么会这样吗?

linux ssh redhat tomcat java

5
推荐指数
1
解决办法
604
查看次数