1

私の Mac には Python 2.6 (32 ビット) と Java 1.7 があります。Mac 10.8.5 で make コマンドを使用してピルセン 2.9.4 をコンパイルします。エラーが発生しました: サポートされていないメジャー.マイナー バージョン 51.0. お気に入り:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/pylucene/analysis/PythonTokenizer : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
While loading org/apache/pylucene/analysis/PythonTokenizer
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/runpy.py", line 122, in     _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/runpy.py", line 34, in _run_code
exec code in run_globals
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/jcc/__main__.py", line 98, in <module>
cpp.jcc(sys.argv)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/jcc/cpp.py", line 496, in jcc
cls = findClass(className.replace('.', '/'))
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/jcc/cpp.py", line 73, in findClass
cls = _findClass(className)
jcc.cpp.JavaError
make: *** [compile] Error 255

このエラーを検索します。ほとんどの回答は、それがミスマッチの問題であると言います。これは、一部のクラスが上位の Java バージョンでコンパイルされているためですが、下位の Java バージョンで実行したいためです。私はpython 2.6を使用しています。Javaのバージョンを確認すると、Java 1.7です。お気に入り:

joekaojoekaoMac-mini:pylucene-2.9.4-1 joekaojoekao-mini$ java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)

バイナリ形式でエラーが発生する PythonTokenizer.class も開きます。その番号は x0000 0033 であるため、Java 1.7 でコンパイルされます。最初の行は次のようになります。

cafe babe 0000 0033 001d 00a0 0500 1609

ただし、ピルセンのメイクファイルでは、java 1.6 を使用することを推奨しています。したがって、ピルセンをコンパイルするためにJava 1.6を使用するように求められるのに、それによって使用されるクラスファイル(PythonTokenizer.class)がJava 1.7によってコンパイルされる理由がわかりません。

# Mac OS X 10.6 (64-bit Python 2.6, Java 1.6)
PREFIX_PYTHON=/System/Library/Frameworks/Python.framework/Versions/2.6
ANT=ant
PYTHON=$(PREFIX_PYTHON)/bin/python
JCC=$(PYTHON) -m jcc.__main__ --shared --arch x86_64
NUM_FILES=2

では、Java 1.6 または Java 1.7 を使用する必要がありますか? または、見逃した他の設定はありますか?

4

0 に答える 0