gpt4 book ai didi

java - 在JDBC中运行教程示例时出错:UnsupportedClassVersionError

转载 作者:行者123 更新时间:2023-12-02 07:45:18 26 4
gpt4 key购买 nike

关于我:

我是一名新手程序员,不确定是什么工作以及Apache-Ant的工作原理



目标:

javaconnector jcdb tutorial中运行示例程序



平台背景:

我的机器是OSX 10.5.8 32位

which java”给出“ /usr/bin/java”,它链接到“ /System/Library/Frameworks/JavaVM.frameworks/Versions/A/Commands/java

which javac”给出“ /usr/bin/javac”,它链接到“ /System/Library/Frameworks/JavaVM.frameworks/Versions/A/Commands/javac

echo $JAVA_HOME”给出一个空行

应用程序/实用程序中的Java首选项应用程序列出了四个Java版本:1.6.0_26_b03-385(64位),1.5.0_30-b03(32位),1.5.0_30-b03(64位),1.4.2_22(32位) 。当前,已检查1.6.0和两个1.5.0版本。

注意:没有用于32位OSX 10.5.8的Java 1.6



我做了什么:

首先,我下载了connector/j并将其解压缩,将其移至/usr/local/mysql-connector-java,并按照README.txt第3.1和3.2节的说明进行了安装,包括修改CLASSPATH。我已经有并使用mysql

接下来,我获得了版本1.8.4的蚂蚁二进制文件distribution,并根据manual进行了安装。值得注意的是,该手册指出apap ant可与Java 1.5一起使用。 “ ant -version”返回了正确的版本1.8.4

然后,我下载了tutorial files,将文件解压缩到目录中,并根据tutorial's instructions修改了build.xmlproperties/mysql-build-properties.xml文件。

最后,我使用“ ant jar”编译了软件包和示例,并使用“ ant create-mysql_database”创建了数据库,表和填充表。我也跑了“ ant setup

根据教程的内容,现在应该可以通过将外壳放在教程目录中并运行“ ant <<sample_name>>”来运行示例。因此,我尝试运行教程“ ant runct”建议的示例。

在此过程的中间,我从未更改过我在“应用程序/实用程序”中的“ Java首选项”中使用的Java。我确实使用1.5.0_30和1.6.0_26尝试了该过程,如下所述



我的问题:

运行“ ant <<sample_name>>”(例如“ ant runct”)后,出现以下错误:


构建文件:/Users/adam/Desktop/JDBCTutorial/build.xml

符文:
[java]线程“主”中的异常java.lang.UnsupportedClassVersionError:
com / oracle / tutorial / jdbc / JDBCTutorialUtilities:不支持
major.minor版本51.0
[java],位于java.lang.ClassLoader.defineClass1(本机方法)
[java]位于java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
[java]位于java.lang.ClassLoader.defineClass(ClassLoader.java:615)
[java],位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
[java]位于java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
[java] at java.net.URLClassLoader.access $ 000(URLClassLoader.java:58)
[java] at java.net.URLClassLoader $ 1.run(URLClassLoader.java:197)
[java],位于java.security.AccessController.doPrivileged(本机方法)
[java]位于java.net.URLClassLoader.findClass(URLClassLoader.java:190)
[java]位于java.lang.ClassLoader.loadClass(ClassLoader.java:306)
[java]位于sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)
[java]位于java.lang.ClassLoader.loadClass(ClassLoader.java:247)
[java] Java结果:1

成功建立总时间:1秒




我的自我整流的尝试:

据我从谷歌搜索可以看出,出现了该错误,因为我为教程下载并试图在使用Java编译的文件中运行的文件,而不是我试图用于运行文件的Java。因此,我尝试使用1.6.0版本,方法是将其放在Applications/Utilities/Java_Preferences列表的顶部,并通过使用“ java -version”确认正在使用它,然后执行上述过程。同样的错误。

我还尝试过重新解压缩本教程并修改与上述相同的.xml文件,但更改了$JAVA中的$JAVACmysql-sample-properties.xml属性,以指向/System/Library/Frameworks/JavaVM.framwork/Versions/1.5.0/Home/bin中的文件,即我知道其编号的版本,与“ /usr/bin”中的文件相反,后者指向/System/Library/Frameworks/JavaVM.framwork/Versions/A/Home/bin中的文件。然后,我重新运行“ ant jar”,“ ant create-mysql_database”和“ ant setup”;据我了解,这应该使用我指定的编译器重新编译.java文件(正确吗?)。但是,当我运行“ ant runct”时遇到相同的错误

我还尝试了以下方法,都将mysql-sample-properties.xml中的$ JAVA和$ JAVAC重置为默认值(i.e. /usr/bin/java and /usr/bin/javac),并且没有进行重置。我在.profile中将$JAVA_HOME设置为/System/Library/Frameworks/JavaVM.framwork/Versions/1.5.0/Home,通过运行返回上面路径的which java和返回1.5.0_30的java -version,测试了使用正确的Java,然后重新运行“ ant jar”, “ ant create-mysql_database”和“ ant setup”。当我运行“ ant runct”时,我遇到了同样的错误。

注意:本教程中的.java文件似乎使用了Java 1.6中添加的某些对象/语法。

一个重要的问题是我不知道正在使用哪个Java Ant。



其他问题:

为什么“ usr/bin/java(c)”指向版本“ A”?

什么是Java版本A ???

我如何在32位计算机上安装64位Java?它只是以某种方式模拟了64位计算机吗?如果是这样,对于某些任务,它的运行速度是否比32位版本慢?

为什么我有64位1.5 Java?

ant使用哪个Java编译器和Java?

当我更改哪个Java在Applications/Utilties/Java_Preferences列表中的顶部时,可以通过执行“ java -version”确认机器使用的是正确的默认Java,并且可以通过执行“”来检查正在使用的Java的路径。 which java”。无论哪种Java在列表的顶部(即正在使用),“ which java”都指向“ usr/bin/java”,这是“ /System/Library/Frameworks/JavaVM.frameworks/Versions/A/Commands/java”的快捷方式;无论根据Applications/Utilities/Java_Preferences和“ java -version”使用哪个Java版本,这都是相同的;机器如何在指向相同目录/文件的同时使用不同版本的Java?

最佳答案

ant manual

Environment Variables

The wrapper scripts use the following environment variables (if set):

JAVACMD - full path of the Java executable. Use this to invoke a different JVM than JAVA_HOME/bin/java(.exe).


因此,您应该将 JAVA_HOME设置为正确的Java> 1.5 JDK。但是,由于尚未设置您的 JAVA_HOME,因此我不清楚当前正在使用哪个Ant。如果您使用的是32位系统,则应卸载Java的64位版本,但我认为它们无法正常工作。

我不是OSX专家,所以我也为您的 java可执行文件的完整路径感到困扰,通常它应该位于 bin文件夹中,该文件夹的父文件夹是您应为 JAVA_HOME环境变量设置的文件夹(如Ant手册中所述)。您可以使用 find -name java -perm +x在系统上搜索Java可执行文件,也许您可​​以通过这种方式找到干净的Java安装。

否则,这里的解决方案之一是从oracle网站下载JDK,将其解压缩到 /opt/java_xxx之类的文件夹中,并将其用作 JAVA_HOME。我在系统上并排安装了Java 6和7等。

关于java - 在JDBC中运行教程示例时出错:UnsupportedClassVersionError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11596625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com