I'm trying to install PyLucene 3.4 on my OS X Leopard system. JCC
compiles and installs just fine, the Java bits of Lucene compile OK (a
few warnings), but the last part of the build fails thusly:
[...]
/usr/bin/python -m jcc --shared --jar
lucene-java-3.4.0/lucene/build/lucene-core-3.4.0.jar --jar
lucene-java-3.4.0/lucene/build/contrib/analyzers/common/lucene-analyzers-3.4.0.jar
--jar lucene-java-3.4.0/lucene/build/contrib/memory/lucene-memory-3.4.0.jar
--jar
lucene-java-3.4.0/lucene/build/contrib/highlighter/lucene-highlighter-3.4.0.jar
--jar build/jar/extensions.jar --jar
lucene-java-3.4.0/lucene/build/contrib/queries/lucene-queries-3.4.0.jar --jar
lucene-java-3.4.0/lucene/build/contrib/grouping/lucene-grouping-3.4.0.jar --jar
lucene-java-3.4.0/lucene/build/contrib/join/lucene-join-3.4.0.jar --package
java.lang java.lang.System java.lang.Runtime --package java.util
java.util.Arrays java.util.HashMap java.util.HashSet java.text.SimpleDateFormat
java.text.DecimalFormat java.text.Collator --package java.util.regex --package
java.io java.io.StringReader java.io.InputStreamReader java.io.FileInputStream
--exclude org.apache.lucene.queryParser.Token --exclude org.apache.lucene
.queryParser.TokenMgrError --exclude
org.apache.lucene.queryParser.QueryParserTokenManager --exclude
org.apache.lucene.queryParser.ParseException --exclude
org.apache.lucene.search.regex.JakartaRegexpCapabilities --exclude
org.apache.regexp.RegexpTunnel --exclude
org.apache.lucene.analysis.cn.smart.AnalyzerProfile --python lucene --mapping
org.apache.lucene.document.Document
'get:(Ljava/lang/String;)Ljava/lang/String;' --mapping java.util.Properties
'getProperty:(Ljava/lang/String;)Ljava/lang/String;' --sequence
java.util.AbstractList 'size:()I' 'get:(I)Ljava/lang/Object;' --rename
org.apache.lucene.search.highlight.SpanScorer=HighlighterSpanScorer --version
3.4.0 --module python/collections.py --module python/ICUNormalizer2Filter.py
--module python/ICUFoldingFilter.py --module python/ICUTransformFilter.py
--files 3 --build
While loading org/apache/pylucene/search/PythonIntParser
Traceback (most recent call last):
File
"/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/runpy.py",
line 95, in run_module
filename, loader, alter_sys)
File
"/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/runpy.py",
line 52, in _run_module_code
mod_name, mod_fname, mod_loader)
File
"/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/runpy.py",
line 32, in _run_code
exec code in run_globals
File
"/Library/Python/2.5/site-packages/JCC-2.11-py2.5-macosx-10.5-i386.egg/jcc/__init__.py",
line 32, in <module>
import jcc.__main__
File
"/Library/Python/2.5/site-packages/JCC-2.11-py2.5-macosx-10.5-i386.egg/jcc/__main__.py",
line 98, in <module>
cpp.jcc(sys.argv)
File
"/Library/Python/2.5/site-packages/JCC-2.11-py2.5-macosx-10.5-i386.egg/jcc/cpp.py",
line 554, in jcc
cls = findClass(className.replace('.', '/'))
File
"/Library/Python/2.5/site-packages/JCC-2.11-py2.5-macosx-10.5-i386.egg/jcc/cpp.py",
line 73, in findClass
cls = _findClass(className)
jcc.cpp.JavaError: java.lang.UnsupportedClassVersionError: Bad version number
in .class file
Java stacktrace:
java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:676)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:317)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)
make: *** [compile] Error 255
/tmp/pylucene-3.4.0-1 688 % find . -name PythonIntParser.class
./build/classes/org/apache/pylucene/search/PythonIntParser.class
/tmp/pylucene-3.4.0-1 689 % file
./build/classes/org/apache/pylucene/search/PythonIntParser.class
./build/classes/org/apache/pylucene/search/PythonIntParser.class: compiled Java
class data, version 50.0
/tmp/pylucene-3.4.0-1 690 %
My Makefile settings are:
# Mac OS X 10.5 (32-bit Python 2.5, Java 1.6)
PREFIX_PYTHON=/usr
ANT=ant
PYTHON=$(PREFIX_PYTHON)/bin/python
JCC=$(PYTHON) -m jcc --shared
NUM_FILES=3
I finally figured out that I've got Java 6 before Java 5 in my "Java
Preferences", but that doesn't work because Python is 32-bit and Java 6
is 64-bit. So, on Leopard, be careful to set the Java prefs so that
Java 5 is first before installing PyLucene.
Bill