解决双jdk下eclipse启动冲突问题和环境变量配好问题
- 格式:docx
- 大小:578.52 KB
- 文档页数:6
关于eclipse环境启动不成功的问题解决⽅法常信息补充:Caused by: javassist.CannotCompileException: by ng.OutOfMemoryError: PermGen spaceat javassist.ClassPool.toClass(ClassPool.java:1099)at javassist.CtClass.toClass(CtClass.java:1265)at com.taobao.hsf.bytecode.ClassGenerator.toClass(ClassGenerator.java:293)... 37 moreCaused by: ng.OutOfMemoryError: PermGen spaceat ng.ClassLoader.defineClass1(Native Method)at ng.ClassLoader.defineClassCond(Unknown Source)at ng.ClassLoader.defineClass(Unknown Source)at sun.reflect.GeneratedMethodAccessor68.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at ng.reflect.Method.invoke(Unknown Source)at javassist.ClassPool.toClass2(ClassPool.java:1112)at javassist.ClassPool.toClass(ClassPool.java:1093)at javassist.CtClass.toClass(CtClass.java:1265)在 VM arguments中添加配置:-Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=128m -XX:MaxPermSize=256m另外的博客之前使⽤tomcat7时遇到启动报错问题,⽇志如下:严重: ContainerBase.addChild: start:org.apache.catalina.LifecycleException: Failed to start component[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/mypro]]at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1114)at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1673)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)at java.util.concurrent.FutureTask.run(FutureTask.java:138)at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)at ng.Thread.run(Thread.java:619)Caused by: ng.IllegalStateException: Unable to complete the scan for annotations for web application [/mypro]. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependenciesat org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2109)at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1981)at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1947)at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1932)at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1326)at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369)at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5179)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)... 11 moreCaused by: ng.StackOverflowErrorat java.util.HashMap.get(HashMap.java:300)at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2257)at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2269)at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2269)at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2269)at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2269)at org.apache.catalina.startup.ContextConfig.populateSCIsForCacheEntry(ContextConfig.java:2269)……在⽹上找了很久,最终解决问题,在这时MARK⼀下。
eclipse启动出错的解决方案1、org.osgi.framework.BundleException问题描述:启动eclipse时出错,无法正常启动,查看log发现是异常信息:org.osgi.framework.BundleException……解决方案:其实发生这个问题的原因是加载java虚拟机出的错,因为eclipse实际上是一个java程序,运行时需要指定java虚拟机。
首先我们来看看Eclipse的JVM启动的时候找JRE的顺序:如果eclipse.ini 中配置了-vm参数,那么则使用这个参数指定的JRE;否则就去查看eclipse安装目录下是否有JRE文件夹,如果有的话就使用这个JRE;否则的话就去系统中查找安装的JRE,如果还找不到的话就报错。
对于jre不是安装在eclipse的安装目录下的情况(假设JDK安装路径为G:/csmn/java/jdks/1.6.0_24/jdk1.6.0_24/bin),可以有两种方法(其实本质一样)可以指定:1、运行eclipse时使用命令参数-vm指定JVM,如./eclipse -vm G:/csmn/java/jdks/1.6.0_24/jdk1.6.0_24/bin;2、第1种做法相对比较麻烦,每次运行都得带参数,有个一劳永逸的办法就是把-vm参数加到eclipse的初始化文件eclipse.ini。
要特别注意采用这种方法是-vm和后面的/usr/java/jre1.7.0_06/bin/java要分两行,不然运行不成功。
未加入之前eclipse.ini为:-startupplugins/uncher_1.3.0.v20120522-1813.jar--launcher.libraryplugins/uncher.win32.win32.x86_1.1.200.v20120522-1813-showsplashorg.eclipse.platform--launcher.XXMaxPermSize256m--launcher.defaultActionopenFile-vmargs-Xms40m-Xmx512m加入-vm之后为:-startupplugins/uncher_1.3.0.v20120522-1813.jar--launcher.libraryplugins/uncher.win32.win32.x86_1.1.200.v20120522-1813 -showsplashorg.eclipse.platform--launcher.XXMaxPermSize256m--launcher.defaultActionopenFile-vmG:/csmn/java/jdks/1.6.0_24/jdk1.6.0_24/bin-vmargs-Xms40m-Xmx512m这样再次启动eclipse就不会出现之前的问题了。
NoJVMcouldbefoundonyoursystem.PleasedefineEXE。
在使⽤exe4j打包程序的时候遇到的问题这个问题主要是由于你设置的jre版本出现了问题,或者环境变量没有配。
1、⾸先需要添加⼀个Jre的环境变量。
检查你的环境变量,有没有添加或者添加是否正确!环境配好以后直接点finish ,从新启动⼀下exe⽂件,⼀般配置没问题的话问题解决。
2、如果问题还没有解决说明是你在exe4j建包过程中配置出现了问题,检查这⼏个地⽅。
(1)、⽹上有exe4j的使⽤教程,再添加jre的时候⽬录记得选derectory。
确认引⼊jre路径没问题以后来看看第三个地⽅,点加号添加,选择Derectory 选择⽬录,找到你对应的jre位置。
这⼀步和第⼀步对应!如果你的环境变量名取的不是EXE4J_JAVA_HOME,那么你直接点加号选择Environment variable,如下图选项!因为exe4j默认是有两个环境变量JAVA_HOME 和JDK_HOME ,⼀般按照我们的环境配置习惯,JAVA_HOME是jdk,所以只会引⼊jdk ⽽少了jre !所以直接将你的变量名填在下⾯添加即可!这和上⾯路径添加的效果⼀样!(2)、选择你的jre范围,由于都是跟着⽹上使⽤教程设置的,所以在jre版本范围设置上没有仔细看,导致了找不到jre ,这也是问题之⼀!⽹上教程上是很久以前的,版本范围是1.5~1.7 。
⽽我的电脑装的1.8 ,所以只需把范围改过来就⾏!(3)、确认勾选上这⾥、⽣成的可执⾏⽂件的体系结构,32bit的电脑可以不⽤选,64bit的需要勾上,但建议最好都勾上!注:检查操作完以上⼏步,然后finish ,此问题解决!⽹上对这个问题也是模棱两可,我算是把该踩得坑都踩完了!本⽂为作者学习过程中所遇到的问题总结所得,亲测有效!如有纰漏,望指正!。
eclipse报错eclipse启动报错解决⽅法Version 1.4.2_03 of the JVM not suitable for this product.Version1.5 or geeater is required⼤概意思好像说我的JVM虚拟机的环境 1.4版本过低,让我⽤1.5版本以上的,很疑惑。
我安装的jdk是1.7的。
不过jvm是;C:\Documents and Settings\Administrator>java -versionjava version "1.7.0_07"Java(TM) SE Runtime Environment (build 1.7.0_07-b11)Java HotSpot(TM) Client VM (build 23.3-b01, mixed mode, sharing)C:\Documents and Settings\Administrator>!SESSION 2012-11-27 20:26:37.326 -----------------------------------------------eclipse.buildId=I20110613-1736java.version=1.4.2_03java.vendor=Sun Microsystems Inc.BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=zh_CNCommand-line arguments: -os win32 -ws win32 -arch x86!ENTRY org.eclipse.osgi 2 1 2012-11-27 20:26:37.779!MESSAGE NLS unused message: ECLIPSE_OSGI_NAME in: org.eclipse.osgi.framework.internal.core.ExternalMessages!ENTRY org.eclipse.osgi 2 1 2012-11-27 20:26:37.779!MESSAGE NLS unused message: OSGI_VERSION in: org.eclipse.osgi.framework.internal.core.ExternalMessages!ENTRY org.eclipse.osgi 2 1 2012-11-27 20:26:37.795!MESSAGE NLS unused message: ECLIPSE_COPYRIGHT in: org.eclipse.osgi.framework.internal.core.ExternalMessages!ENTRY org.eclipse.osgi 2 1 2012-11-27 20:26:37.795!MESSAGE NLS unused message: BUNDLE_CLASSPATH_ENTRY_NOT_FOUND_EXCEPTION in:org.eclipse.osgi.framework.internal.core.ExternalMessages!ENTRY org.eclipse.osgi 2 1 2012-11-27 20:26:37.795!MESSAGE NLS unused message: BUNDLE_FRAGMENT_IMPORT_CONFLICT in: org.eclipse.osgi.framework.internal.core.ExternalMessages !ENTRY org.eclipse.osgi 2 1 2012-11-27 20:26:37.795!MESSAGE NLS unused message: FILTER_INVALID in: org.eclipse.osgi.framework.internal.core.ExternalMessages!ENTRY org.eclipse.osgi 2 1 2012-11-27 20:26:37.795!MESSAGE NLS unused message: LAUNCHER_ADAPTOR_ERROR in: org.eclipse.osgi.framework.internal.core.ExternalMessages!ENTRY org.eclipse.osgi 2 1 2012-11-27 20:26:37.795!MESSAGE NLS unused message: LAUNCHER_INVALID_PORT in: org.eclipse.osgi.framework.internal.core.ExternalMessages!ENTRY org.eclipse.osgi 2 1 2012-11-27 20:26:37.795!MESSAGE NLS unused message: LAUNCHER_COMPONENT_MISSING in: org.eclipse.osgi.framework.internal.core.ExternalMessages!ENTRY org.eclipse.osgi 2 1 2012-11-27 20:26:37.795!MESSAGE NLS unused message: LAUNCHER_COMPONENT_JAR in: org.eclipse.osgi.framework.internal.core.ExternalMessages!ENTRY org.eclipse.osgi 2 1 2012-11-27 20:26:38.170!MESSAGE NLS unused message: COMMIT_INVALID_TIMESTAMP in: org.eclipse.osgi.internal.resolver.StateMessages!ENTRY org.eclipse.equinox.p2.reconciler.dropins 4 0 2012-11-27 20:26:38.170!MESSAGE FrameworkEvent ERROR!STACK 0org.osgi.framework.BundleException: ⽆法解析束。
eclipse在win7中环境变量的配置
关键词:eclipse;win7;环境变量
首先右击“计算机”选择“属性”,转到“控制面板”,选择“高级系统设置”箭头所指选项,如下图1所示
图1
接着,就转到了”系统属性“窗口,如图2选择“高级”选项,再点击“环境变量”。
图2
然后就转到了“环境变量”窗口,如图3,开始“用户变量”下选择“新建”。
1)JAVA_HOME 填上jdk的安装在电脑本地磁盘上的路径,如
eclipse在win7系统中环境变量的配置方法.wps
(必须填写自己实际的jdk安装路径)
2)Path设为 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin (复制就可,照填)3)CLASSPATH设为 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (必须加.)。
图3
至此,完成eclipse在win7的环境变量设置。
测试结果,选择“开始”→”运行“,输入cmd,输入如图中的命令,证明已经成功配置好了eclipse的环境变量。
这里分别单独拿出来展示3个命令所出现的提示信息,便于阅读。
输入java -version命令,应当出现如下提示信息,如下所示:
输入javac命令,应当出现如下提示信息,如下所示:
输入java命令,应当出现如下提示信息,如下所示:
eclipse的环境变量。
javaeclipse出现xxxcannotberesolvedtoatype错误解决⽅法xxx cannot be resolved to a type引⾔ eclipse新导⼊的项⽬经常可以看到“XX cannot be resolved to a type”的报错信息。
本⽂将做以简单总结。
正⽂(1)jdk不匹配(或不存在)项⽬指定的jdk为“jdk1.6.0_18”,⽽当前eclipse使⽤的是“jdk1.6.0_22”。
需要在BuildPath | Libraries,中做简单调整。
(2)jar包缺失或冲突当找不到“XX”所在的jar包时,会报这个错。
解决只需要找到(ctrl+点击,可能能看到jar包名称)对应jar包导⼊项⽬即可。
另外,出现相同的XX时也会报此错。
可能需要调包、解包、选删。
(3)eclipse查找项⽬类型策略所致eclipse下,上述两条都对⽐过了,没有任何问题,可偏偏还报这错。
这时,需要操作⼀下 Project | Clean... ,问题即可解决。
原因是,机制所致。
因为某些特殊原因,eclipse没能⾃动编译源代码到build/classes(或其他classes⽬录),导致类型查找不到。
编码问题以上这些是⽐较常见的错误,我这⾥遇到的错误是⽂件编码导致的!错误类似下图,这⾥只截取⼀部分:解决⽅法:在发⽣错误的项⽬上单击⿏标右键》Properties左侧选中“Resource”,右侧Text file encoding选择“Other:UTF-8”,点击“Apply”按钮。
很多⼩伙伴反馈,经过上⾯的步骤还是不能解决问题,刚好最近遇到这样的问题;在⽂章 Java中REST API使⽤⽰例——基于云平台+云服务打造⾃⼰的在线翻译⼯具中从IBM Bluemix上下载的Java⽰例代码,导⼊到Eclipse之后,出现类似以上错误信息!如下图:具体解决⽅法请参考:感谢阅读,希望能帮助到⼤家,谢谢⼤家对本站的⽀持!。
eclipse详细安装步骤和环境配置安装步骤:点击进⼊eclipse官⽹:找到对应软件点击下载1.右击“eclipse-jee-oxygen-R-win32-x86_64.zip”⽂件。
点击“解压到eclipse-jee-oxygen-R-win32-x86_64”。
2.根据系统类型选择安装,64位电脑安装“jdk-8u131-windows-x64_8.0.1310.11.exe”,32位电脑安装“jdk-8u131-windows-i586_8.0.1310.11” 。
3.点击“下⼀步”。
4.点击“公共JRE”,选择“此功能及所有⼦功能将安装在本地硬盘上”。
此软件为了好调⽤环境,不要更改安装路径。
5.等待安装。
6.点击更改选择安装路径,可在D盘或其它盘上,新建⼀个“java”⽂件夹。
选择安装路径后,点击“下⼀步”。
7.等待安装。
8.点击“关闭”。
9.配置JAVA运⾏环境。
右击“计算机”。
点击“属性”。
10.点击“⾼级系统设置”。
11.点击“⾼级”,再点击“环境变量”。
12.点击“新建”。
变量名输⼊“JAVA_HOME”,变量值输⼊JAVA软件安装路径。
步骤:第三步处的路径。
说明:双引号不要输⼊或复制到。
13.点击“新建”,变量名输⼊“CLASSPATH”变量值输⼊“.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; ”。
说明:双引号不要输⼊或复制到。
14.在系统变量中找到“Path”,点击“编辑”。
在后⾯加⼊“ ;%JAVA_HOME%\bin ”。
说明:双引号不要输⼊或复制到。
15.同时按键盘上的“WIN键+R键”。
输⼊“cmd”。
点击确定。
16.输⼊“ java -version ”。
按⼀下“回车键”(Enter)。
出现⼀下⽂字说明安装成功。
如果出现其他⽂字。
说明安装失败,你可能需要从第11步重新配置。
17.双击“eclipse.exe”⽂件。
Eclipse设置、调优、使⽤⼀般在不对eclipse进⾏相关设置的时候,使⽤eclipse总是会觉得启动好慢,⽤起来好卡,其实只要对eclipse的相关参数进⾏⼀些配置,就会有很⼤的改善1.eclipse.ini配置参数Eclipse的启动由$ECLIPSE_HOME/eclipse.ini控制,如果$ECLIPSE_HOME 没有被定义,则Eclipse安装⽬录下的默认eclipse.ini会⽣效。
eclipse.ini是⼀个⽂本⽂件,其内容相当于在Eclipse运⾏时添加到 Eclipse.exe之后的命令⾏参数。
eclipse.ini 不仅仅可以设置eclipse的堆栈内存⼤⼩,也可设置默认使⽤的jdk版本。
其格式要求:1:所有的选项及其相关的参数必须在单独的⼀⾏之内2:所有在-vmargs之后的参数将会被传输给JVM,所有如果所有对Eclipse 设置的参数必须写在-vmargs之前(就如同你在命令⾏上使⽤这些参数⼀样)3.所有的选项及其相关的参数必须在单独的⼀⾏之内,若参数形如“项值”形式,中间的空格需要换⾏书写,如果值中有空格则需要⽤双引号括起来堆(Heap)和⾮堆(Non-heap)内存按照官⽅的说法:“Java虚拟机具有⼀个堆,堆是运⾏时数据区域,所有类实例和数组的内存均从此处分配。
堆是在 Java 虚拟机启动时创建的。
”“在JVM中堆之外的内存称为⾮堆内存(Non-heap memory)”。
可以看出JVM主要管理两种类型的内存:堆和⾮堆。
简单来说堆就是Java代码可及的内存,是留给开发⼈员使⽤的;⾮堆就是JVM留给⾃⼰⽤的,所以⽅法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运⾏时常数池、字段和⽅法数据)以及⽅法和构造⽅法的代码都在⾮堆内存中。
堆内存分配:JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最⼤分配的内存由-Xmx指定,默认是物理内存的1/4。
最近升级电脑,把系统更换成了64位系统,所以最近一直在往里面灌软件,java的开发环境也需要重新安装一下(Eclipse开发平台的需要),在安装JDK,设置系统环境变量后,出现了Java无法运行的情况,首先将安装过程简要说一下:1.下载:官网下载最新的JDK(jdk-8u25-windows-x64),进行安装2.设置系统环境变量:计算机属性》高级系统设置》高级》环境变量,页面下方系统变量中新建一个变量名为JAVA_HOME,变量值为jdk安装路径(我的是E:\jdk)的变量还是页面下方的系统变量,找到Path变量,编辑,在变量值最后输入;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;还是系统变量,新加classpath变量,变量值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(前面的.表示当前位置,不能省)然后问题就来了:完成后在DOS中输入java,显示:Error:Registry key'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'has value'1.8',but'1.7'is required.Error:could not find java.dllError:Could not find Java SE Runtime Environment.但是在DOS中运行javac却是正常的。
读一下出现的问题提示就会发现,电脑是在提示我Registry key中出现了问题,而这不就是注册表吗。
所以我在运行中输入RegEdit,在注册表的HKEY_LOCAL_MACHINE》SOFTWARE》JavaSoft》Java Runtime Envirnoment中找到了1.7和1.8两个版本的JDK,所以预感到问题可能出现在系统中添加的环境变量的java版本和电脑中默认的版本不一致。
首先进入注册表管理器:
找到如下文件夹:
删除掉这选中的文件夹
进入控制面版或者其他可以卸载jdk的软件:
卸载jdk
然后进入jdk的安装目录:
彻底删除这两个安装文件:
然后找到jdk的安装包:
安装jdk
最好建议在c盘下直接建立一个java文件把jdk装下面,实际开发来说jdk'的安装目录最好不要有出现空格的上层目录
环境变量的配置:环境变量的配置其中的javahome就写你rad要用的那个jdk的安装目录也就是说你把32位的jdk 配置成javahome
打开计算机点系统属性,打开高级属性:
新建环境变量javahome:
值为jdk的安装路径;
然后配置path:
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
新建classpath:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
前面有点和分号
然后测试是否安装成功:
安装成功的提示信息:
这个成功以后,你的rad就可以启动了
然后你把你的64位jdk安装好,前提是你eclipse也要是64位的,不然直接和jdk不兼容了你在配好以后打开eclipse,它会报错这时候开始配置eclipse相关文件:
打开eclipse的安装目录:
找到这文件:
打开:
配置这两个路径
其中
C:/Java/jre1.8.0_65是你的jdk的安装目录
如果你jdk是安装在d盘的java文件夹下就写成:D:/Java/jre1.8.0_65/bin/javaw.exe 其他类推
找其中有没有这文件jawaw.exe
如果有就这样写
然后
-vmargs
-Dosgi.requiredJavaVersion=1.8代表你的jdk版本信息,你的是1.6就写1.6
然后这些配置好了
保存一下
然后刷新一下,两个软件就都可以用了。
当然你也可以把javahome设置为eclipse所需jdk 的安装目录,但是你就需要去另外一个软件的配置文件下(一般配置文件是软件名.ini文件)加入他所需要的jdk的配置信息:
-vm
C:/Java/jre1.8.0_65/bin/javaw.exe但是一般不建议这么做。
记住一句话需要用jdk的软件首先他是去自己的配置文件里面找jdk在哪如果配置文件没有它需要的jdk版本就会去系统里面找也就是我们说的环境变量如果都没有找到软件就启动报错。