關於我:錯誤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