2024-05-06 18:39:01 | 我爱编程网
配置有问题,错误是找不到javax/xml/registry/infomodel/User这个类。
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。
“Java 语言靠群体的力量而非公司的力量”是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。
Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
Java 平台是基于 Java 语言的平台。这样的平台目前非常流行,因此微软公司推出了与之竞争的.NET平台以及模仿 Java 的 C#语言。
/首先检查程序有没有限入死循环
这个问题主要还是由这个问题 java.lang.OutOfMemoryError: Java heap space 引起的。第一次出现这样的的问题以后,引发了其他的问题。在网上一查可能是JAVA的堆栈设置太小的原因。
跟据网上的答案大致有这两种解决方法:
1、设置环境变量
解决方法:手动设置Heap size
修改TOMCAT_HOME/bin/catalina.sh
set JAVA_OPTS= -Xms32m -Xmx512m
可以根据自己机器的内存进行更改。
2、java -Xms32m -Xmx800m className
就是在执行JAVA类文件时加上这个参数,其中className是需要执行的确类名。(包括包名)
这个解决问题了。而且执行的速度比没有设置的时候快很多。
如果在测试的时候可能会用Eclispe 这时候就需要在Eclipse ->run -arguments 中的VM arguments 中输入-Xms32m -Xmx800m这个参数就可以了。
后来在Eclilpse中修改了启动参数,在VM arguments 加入了-Xms32m -Xmx800m,问题解决。
一、java.lang.OutOfMemoryError: PermGen space
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,
这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,
它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对
PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,
这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小
超过了jvm默认的大小(4M)那么就会产生此错误信息了。
解决方法: 手动设置MaxPermSize大小
修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m
建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。
二、java.lang.OutOfMemoryError: Java heap space
Heap size 设置
JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,
其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可
进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。
提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。
提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
解决方法:手动设置Heap size
修改TOMCAT_HOME/bin/catalina.sh
在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m"
三、实例,以下给出1G内存环境下java jvm 的参数设置参考:
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
很大的web工程,用tomcat默认分配的内存空间无法启动,如果不是在myeclipse中启动tomcat可以对tomcat这样设置:
TOMCAT_HOME/bin/catalina.bat 中添加这样一句话:
set JAVA_OPTS= -Xmx1024M -Xms512M -XX:MaxPermSize=256m
如果要在myeclipse中启动,上述的修改就不起作用了,可如下设置:
Myeclipse->preferences->myeclipse->servers->tomcat->tomcat×.×->JDK面板中的
Optional Java VM arguments中添加:-Xmx1024M -Xms512M -XX:MaxPermSize=256m
以上是转贴,但本人遇见的问题是:在myeclipse中启动Tomcat时,提示"ava.lang.OutOfMemoryError: Java heap space",解决办法就是:
Myeclipse->preferences->myeclipse->servers->tomcat->tomcat×.×->JDK面板中的
Optional Java VM arguments中添加:-Xmx1024M -Xms512M -XX:MaxPermSize=256m
转来的,你试试~
我爱编程网(https://www.52biancheng.com)小编还为大家带来Java问题:tomcat启动报错,如下!的相关内容。
原因:这个是JDK版本不对造成的。
解决方法:我爱编程网
1、即你用某版本的JDK编译的class,放在另一版本JDK上去运行,就容易发生这种异常了(常常是高版本编译在低版本上运行时发生)。
2、这里显然你的Tomcat用的JDK与你编译用的JDK不一样,换成一致的版本就OK了。
方法二:
1、在对应DaoImpl中加入sessionfactory的set方法、get方法。
private
SessionFactory
sessionFactory;
public
SessionFactory
getSessionFactory()
{
return
sessionFactory;
}
public
void
setSessionFactory(SessionFactory
sessionFactory)
{
this.sessionFactory
=
sessionFactory;
}
继承JdbcDaoSupport。
UserDaoImpl
extends
JdbcDaoSupport
如何让tomcat启动时,就运行java一、创建Servlet在一个Web项目中创建一个Servlet,在web.xml文件中配置。将需要初始化的内容放在Servlet的init()方法实现。二、设置Servlet为自启动在web.xml文件中添加:<servlet> <servlet-name>servlet的名字</s
tomcat启动后会启动多少后台进程tomcat启动只会有一个进程,java进程。如果你使用linux,可以用ps看一下。当然那个启动用的sh也会占一个进程。不过即使被kill了,不会对运行造成任何影响。所以不能算。而至于线程就太多了。不同的tomcat版本,不同的配置都会造成不同的线程。另外如果发生了web访问,那么多个访问。会造成一定数量的访问处理的线程(应该比访问数远少。与配置
java运行闪退,报错如下,是因为ole32.dll的问题吗嗯之前也遇到过你这样的问题第一种方案呢,就是根据源码,把它原来加载dll文件那块修改一下具体请参见System.load和System.loadLibrary详解第二种方案,也不太推荐,因为我们做的项目,到客户那边实施的时候太麻烦,就是将dll文件考到java的path下例如我的就拷贝到C:\ProgramFiles(x86)\Ja
tomcat发布war包需要重启tomcat吗?如果开启了势部署,是不需要重启的,其实启动的只是一个context。其中一个误区要注意就是使用cmd命令:jar-cvftsqa.wartsqa打包项目的问题,不建议使用,实践后知道打包的目录结构和用eclips打包的目录结构不同,且打的包更重,结构不合理。 一开始遇到启动报错的问题,一般来说启动就报错是环境出问题了,换个版本的tomc
请教大神,比如说我写了一个java程序,我想让tomcat启动时自动去执行这个java程序。如何实现?java有个Listener!随tomcat启动而调用自己写的方法!也可以循环调用!就是每过几小时掉用自己的方法web.xml<listener><listener-class>com.function.SysContextListener</listene
java字符串录入数组后显示null?原因在于你最后for循环输出中i<length里的length取值有问题。你这段程序中,length取的是文件的大小,longlength=file.length()返回的是当前文件的所有字符的数量。假如你的文件里的内容是:第一行:a第二行:bc那么此时file.length()是多少呢?其实它是'a'、'\n'、'b'、'
Java中如何让web服务器启动的时候自动运行web程序中某个类的某个1、首先让需要自动运行的类继承javax.servlet.http.HttpServlet2、把需要自动运行的类中写一个init方法。(servlet应用程序启动的入口就是init方法)public void init(){ System.out.println("这样在web容器启
tomcat启环境需要网络吗需要。Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。该服务器启环境是需要网络的,使用SSH框架,在联网情况下,项目可以正常运行,当一旦断网,则启动服务器报错。java网络编程需要联网吗网络编程,一开始学习的是Socket编程,这是最原始的网络编程,这个只需要在java虚拟机中运行服
2025-02-01 20:24:39
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-01-05 14:11:24
2024-11-22 05:08:01
2024-09-10 08:50:00