`
新来的菜鸟
  • 浏览: 132958 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

【转】Error starting Sun's native2ascii

 
阅读更多

在一个web项目中,运行build.xml文件是出现Error starting Sun's native2ascii
问题,我找了各种可能的情况,其他同事都没有这个问题,很是郁闷,也是在网上

发现了这个解决方法,

 

复制JDK目录下的lib文件夹的tools.jar到JRE目录下的lib文件夹下的ext文件夹
(另外一个更好的办法就是把JRE的路径设置到JDK的目录下)
Copying %Java_Home%/lib/tools.jar to  %Java_Home%/jre/lib/ext/tools.jar fixed this problem.
(a better approach is to set up JRE path to the directory JDK)

经过分析:
今天使用Maven创建Appfuse的时候,发现出现Error starting Sun's native2ascii
Maven指向的是JRE的目录,JRE目录下没有tools.jar,故找不到native2ascii
研究后发现Maven指定的是../相对路径按道理能通过找寻上一级文件夹从而找到jdk目录继而找到tools.jar包
因此一般情况下是用JDK里面的JRE不会出现这个问题.
通过上面分析判断项目配置的JRE不在JDK的目录,把tools.jar文件放到JRE目录lib文件夹的ext文件夹下
问题解决。

 

http://blog.csdn.net/yqlx521/article/details/6934487

 

 

在匆忙的情况下,从另外一台电脑上拷了个tools.jar过来,但编译时报错如下:

 

bad class file: C:/Program Files/Java/jre1.5.0_11/lib/rt.jar(java/lang/Object.class)
class file has wrong version 49.0, should be 48.0
Please remove or make sure it appears in the correct subdirectory of the classpath.
出现这个错误的是因为C:/Program Files/Java/jre1.5.0_11/lib目录底下tools.jar 的版本, 和 JVM jre1.5.0启动 的版本不一致所造成.
由于C:/Program Files/Java/jre1.5.0_11/lib 目录底下tools.jar 的版本是 1.4, 而 Tomcat 却选择 1.5 版本的 JVM.
所以会出现
"class file has wrong version 49.0, should be 48.0" 的 error message.
当中 49.0 即是指 Java 的 1.5 版本, 而 48.0 是指 Java 的 1.4 版本.
找到原因后,解决就很简单了,从网上download一个1.5或更高版本的tools.jar替换一下,然后编译通过。
那为什么会出现 tools.jar 的版本和 JVM 的版本不符的情况呢?
首先要说明, 于 tomcat/common/lib/ 目录底下的那个 tools.jar 其实不是 tomcat 原本有的. 其实那是当你安装 Tomcat 时, Tomcat 从你指定的 JDK 目录底下的 lib 目录抄过去的.
这个 tools.jar 有何用处? 那其实是 JDK 本身附有的jar档, 是用来方便我们写 Java 程序的 (eg. 方便编译 Java). 举例说, 平时我们用的 javac 命令, 其实本身就是一个由 java 写成的程序, 而那正正就是于 tools.jar里面.
那为什么 Tomcat 需要将 JDK 的 tools.jar 抄去自己那里? 那是因为 Tomcat 需要用 tools.jar 裡面的 javac 程序, 去编译我们写好的 JSP 档桉.
可是, 编译的时候, 也需要 Java 程序本身需要的 library (class files) 才可以. 那么 Tomcat 到哪里去找那这些 library 呢? 到哪里找, 其实是取决于Tomcat 本身选定哪个 JVM, 而这个我们是可以自行到 Tomcat Configure里的 Java 版面里设定的. Tomcat 是会到你所设定的那个 JVM 所属的那个 JRE 目录底下的 lib 目录找 library, 亦即是那个 rt.jar 档桉 (Java 的 library 是在里面的).
 
但有时候修改后,tomcat在eclipse下启动和startup.bat启动时正常,用tomcat.exe启动时却又出现这错误了
这个原因是因为你一台机子上装了两个不同的JDK版本,而系统默认当前版本是更高的1.5版本
而tomcat.exe启动时使用的就是系统设置的版本了,也就是1.5了,所以就要将当前版本改为1.4版本的
在注册表中修改:
HEKY_LOCAL_MACHINE-->SOFTWARE-->JavaSoft-->Java Runtime Environment 中的CurrentVersion改为1.4版本的
重启就OK了
 
关于错误Unsupported major.minor version 49.0
原因是JDK1.5编译的内容放到了JDK1.4等低版本下
设置
「Window」->「Preferences」->「Java」->「Compiler」->「JDK Compliance level」->「1.4」
  即:
「窗口」->「首选项」->「Java」->「编译器」->「编译器一致性级别」->「1.4」
重新编译发布,OK搞定!
分享到:
评论

相关推荐

    快速转码(UTF-8转ASCII)

    本文将详细介绍“快速转码(UTF-8转ASCII)”这一主题,以及如何在Java Web开发中实现这个过程。 首先,我们要理解UTF-8和ASCII编码的区别。ASCII(American Standard Code for Information Interchange,美国信息...

    Error in initialization of native part of the Colorer library. This can be caused by absent net_sf_colorer.dll 报错

    ### Error in Initialization of Native Part of the Colorer Library 在安装 Eclipse Colorer 插件时遇到“Error in initialization of native part of the Colorer library. This can be caused by absent ...

    rsync常见错误及解决方法

    一、@ERROR: chroot failed(rsync error: error starting client-server protocol (code 5)) 这种错误的原因是服务器端的目录不存在或无权限,创建目录并修正权限可以解决问题。例如,如果rsync的配置文件中指定了...

    Struts1.系列教程

    安装目录>\bin\native2ascii -encoding GBK ErrorDescription.properties ErrorDescription.properties ``` 这里,`-encoding GBK`指定了原始文件的编码格式,`ErrorDescription.properties`是原文件名,转换后...

    rsync远程同步报错:ERROR: auth failed on module www rsync error: error starting client-server protocol (cod

    rsync error: error starting client-server protocol (code 5) at main.c(1516) [Receiver=3.0.9] rsync服务器配置如下 [root@localhost ~]# cat /etc/rsyncd.conf # /etc/rsyncd: configuration

    Python错误: SyntaxError: Non-ASCII character解决办法

    SyntaxError: Non-ASCII character ‘\xe4’ in file ./common.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details  错误提示中给出了问题解决的连接,所以就点...

    SUN 硬盘HardError清除插件 iostat-HradErro清除.zip

    标题 "SUN 硬盘HardError清除插件 iostat-HradErro清除.zip" 提供的信息表明,这个压缩包包含了一个针对SUN系统(Sun Microsystems公司的计算机硬件和软件产品)的硬盘错误清除工具,特别关注的是“HardError”问题...

    ReactNative网路及本地缓存

    ReactNative是Facebook开发的一款用于构建原生移动应用的框架,它允许开发者使用JavaScript和React库来编写跨平台的iOS和Android应用。在这个“ReactNative网路及本地缓存”的主题中,我们将深入探讨如何在React...

    react-native-error-boundary:一个简单可重用的 React-Native 错误边界组件 :bug:

    yarn add react-native-error-boundary 用法 该组件在其子组件树中的任何位置捕获。 不处理本机错误。 使用这个组件非常简单。 首先,您必须导入ErrorBoundary组件。 然后,您必须将其包裹在任何可能引发错误的组件...

    ascii码转utf8

    throw std::runtime_error("无法打开文件"); } char ascii_char; while (src.get(ascii_char)) { uint8_t utf8_byte = static_cast(ascii_char); dst.put(utf8_byte); // ASCII字符在UTF-8中保持不变 } ...

    Oracle Solaris 8 Sun Enterprise 10000 IDN Error Messages-36

    错误消息"Oracle Solaris 8 Sun Enterprise 10000 IDN Error Messages-36"指出在使用Oracle Solaris 8操作系统时,Sun Enterprise 10000服务器遇到了与IDN相关的错误,可能是解析、转换或处理国际化域名时出现问题。...

    把键盘输入的ASCII码转换为二进制输出的汇编程序(0~F)

    - `CHANGE1` 和 `CHANGE2`: 这两个子程序负责将ASCII码转换成数字或十六进制值。`CHANGE1`处理0~9的范围,而`CHANGE2`处理A~F的范围。 - `PLAY`: 在这里,程序根据输入的字符选择正确的二进制表示,并准备输出。 - `...

    struts国际化及小蚂蚁转译

    - 如果遇到错误提示 `Error starting Sun's native2ascii`,可能是因为缺少 `tools.jar` 文件。通常情况下,该文件位于 JDK 的 `lib` 目录下。如果 MyEclipse 使用的是 JRE,则需要将 `tools.jar` 文件放置到 JRE ...

    ReactNative中调用相机相册

    在React Native应用开发中,与用户交互是必不可少的,其中包括访问设备的相机和相册功能。React Native提供了各种库来简化这些原生操作,其中`react-native-image-picker`是一个常用的库,它允许开发者轻松地调用...

    差错控制编码 Error Control Coding 英文版 第二版 2nd 有完整书签 林舒 lin shu part1

    差错控制编码 Error Control Coding 英文版 第二版 2nd 林舒 lin shu 还是挺清楚的,有完整书签

    tomcat启动报错

    tomcat启动报错,启动超时,找不到类文件四渡赤水打成不是的

    [C++][Error Code]如何定义Error Code框架 2

    2. 获取错误代码:提供`getError`方法,返回当前的错误代码。 3. 错误信息转换:根据错误代码返回对应的错误信息字符串,这可以通过`getErrorMsg`方法实现。 4. 清除错误状态:提供`clearError`方法,用于在处理完...

    App_reactnative_reactnative_android_

    .catch(error => console.log('Error starting BLE Manager:', error)); // 扫描设备 BleManager.scan([], 5) .subscribe(device => { console.log('Device found:', device); }, error => { console.log('...

Global site tag (gtag.js) - Google Analytics