关于我:错误JDBC运行教程样本:UnsupportedClassVersionError
我是一个较新的程序员,真的不知道它是如何Apache的蚂蚁可行,什么不可行
目标:
运行在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版本。
注:没有Java 1.6的32位OSX 10.5.8
我所做的:
首先我下载解压connector/j它,把它移到/usr/local/mysql-connector-java
,安装了它根据README.txt部分3.1和3.2,包括修改CLASSPATH。我已经有,并使用mysql
接下来,我得到了1.8.4版本的ant二进制文件distribution,并根据manual安装。值得注意的是,手册指出apache ant与Java 1.5一起工作。 “ant -version
”返回正确的版本,1.8.4
于是我下载了tutorial files,解压缩文件到一个目录中,并修改每tutorial's instructions的build.xml
和properties/mysql-build-properties.xml
文件。
最后,我使用“ant jar
”遵守包装和样品,并使用“ant create-mysql_database
”创建了数据库,表格和填充表格。我也运行“ant setup
”以获得良好的结果
根据教程,我现在应该能够通过将我的shell放在教程目录并运行“ant <<sample_name>>
”来运行示例。因此,我尝试运行本教程建议的示例“ant runct
”。
在此过程中,我从未更改过在应用程序/实用程序中的Java首选项中使用的Java;我曾尝试使用1.5.0_30和1.6的程序。0_26如下
我的问题描述:
运行 “ant <<sample_name>>
”(例如 “ant runct
”)后,我收到以下错误:
Buildfile: /Users/adam/Desktop/JDBCTutorial/build.xml
runct: [java] Exception in thread "main" java.lang.UnsupportedClassVersionError: com/oracle/tutorial/jdbc/JDBCTutorialUtilities : Unsupported major.minor version 51.0 [java] at java.lang.ClassLoader.defineClass1(Native Method) [java] at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) [java] at java.lang.ClassLoader.defineClass(ClassLoader.java:615) [java] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) [java] at 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] at java.security.AccessController.doPrivileged(Native Method) [java] at java.net.URLClassLoader.findClass(URLClassLoader.java:190) [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:306) [java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:247) [java] Java Result: 1
BUILD SUCCESSFUL Total time: 1 second
我的自我矫正尝试:
据我可以告诉从谷歌搜索,错误已经出现,因为我下载的教程,并试图运行的地方编译与我试图用来运行文件的Java编译的文件。因此,我试着使用1.6.0版本,将它放在Applications/Utilities/Java_Preferences
的列表顶部,并使用“java -version
”确认它正在使用,然后执行上述过程。同样的错误。
我也试过重新解压教程和修改.xml文件和上面一样,但在mysql-sample-properties.xml
改变了$JAVA
和$JAVAC
性质的文件/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
”
我也试过以下,都与复位$ JAVA和JAVAC $在mysql-sample-properties.xml
为默认(i.e. /usr/bin/java and /usr/bin/javac
),且无需重新设置。我在.profile文件设置$JAVA_HOME
到/System/Library/Frameworks/JavaVM.framwork/Versions/1.5.0/Home
,测试的正确使用Java运行which java
其返回上面的路径和java -version
其返回1.5.0_30,并重新运行“ant jar
”,“ant create-mysql_database
”和“ant setup
”。当我运行“ant runct
”时,我得到了同样的错误。
注:本教程中的.java文件似乎可以在Java 1.6
一个显著的问题是我不知道哪个Java蚂蚁是用添加了一些对象/语法。
其他问题:
为什么 “usr/bin/java(c)
” 点 “A” 型?
什么是Java版本A ???
如何在我的32位机器上安装64位Java?它只是模拟一个64位机器?如果是这样,对于某些任务,它的运行速度是否低于32位版本?
为什么我有64位1.5 Java?
哪个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,同时指向相同的目录/文件?
jolivier,谢谢你的回应,但我无法得到你的建议工作。将.profile中的$ JAVA_HOME设置为/System/Library/Frameworks/JavaVM.framwork/Versions/1.5.0/Home,选中正确的java被“which java”使用,重新解压缩Tutorial文件夹并修改.xml文件.xml特有的$ JAVA和$ JAVAC指向上面的目录。同样的问题。 “发现...”没有奏效;该命令不存在。无法下载JDK for mac,因为mac autoupdate会下载java,而且我的电脑表示它已经完全更新(对于32位osx 10.5.8也没有1.6)。如何在osx上卸载Java版本? – whearyou 2012-07-22 06:16:08
对不起,因为我说我不知道OSX和你的问题安慰我拒绝它。 find是一个linux程序,其mac等价物很难找到(https://www.google.fr/search?q=find+osx+equivalent google找不到找到)。 运行蚂蚁之前,你确定“echo $ JAVA_HOME”打印正确的东西? – jolivier 2012-07-23 21:13:37
对不起,如果我简短:/我最终放弃了教程,并使用蚂蚁文件。最后从网站教程中学习了JDBC。不管怎样,谢谢你 :) – whearyou 2012-08-04 06:53:00