On May 27, 2012, at 6:30, Mark Finkelstein <finkel.m...@gmail.com> wrote:
That solved it; I worked through and set up everything to work
consistently
with msvc. It now compiles, but I'm having trouble finding any good jcc
examples. I tried the following:
Take a look at PyLucene test cases and examples.
import jcc
Not necessary. Only used for building your extension. Especially if you
didn't build your extension with --shared mode.
import CMMCore3
vm=jcc.initVM()
Use CMMCore3.initVM() instead.
vm.attachCurrentThread()
Not necessary from main thread.
print vm.isCurrentThreadAttached()
core=CMMCore3.CMMCore() # this is the jcc wrapped class
It prints out True, but immediately afterwards gives out the
error: RuntimeError: initVM() must be called first
Because your extension isn't initialized as you didn't call initVM() on it
(but on jcc instead).
Which leads me to assume that the vm intialization is not global, which
seems contrary to the description?
It is global (there can only be one Java VM instantiated per process) but
must be called on your extension, not jcc.
Andi..
Again, many thanks for the amazing support!
Mark.
On Sun, May 27, 2012 at 1:42 AM, Bill Janssen <jans...@parc.com> wrote:
Andi Vajda <va...@apache.org> wrote:
On Sat, 26 May 2012, Mark Finkelstein wrote:
That solved it; apparently it wasnt using the CLASSPATH variable to
get
this information, but specifying it directly solved this. Hopefully
this
will be one of the last errors; after pushing forward, I found myself
C:\MinGW\bin\gcc.exe -mdll -O -Wall -DPYTHON -DJCC_VER="2.13"
-D_java_generics -IX:\Java16/include -IX:\Java16/include/win32
-Ibuild\_CMMCore2 -IC:\Python26\lib\site-packages\jcc\sources
-IC:\Python26\include -IC:\Python26\PC -c build\_CMMCore2\CMMCore2.cpp
-o
build\temp.win32-2.6\Release\build\_cmmcore2\cmmcore2.o /EHsc
/D_CRT_SECURE_NO_WARNINGS
gcc: error: /EHsc: No such file or directory
gcc: error: /D_CRT_SECURE_NO_WARNINGS: No such file or directory
error: command 'gcc' failed with exit status 1
Perhaps this is more meant for a cygwin installation, but is there a
way to
make this work for the cmd prompt?
You've configured JCC to work with a Microsoft Visual C++ compiler but
you're using gcc via MinGW. I can't help you with that configuration
as I don't have it but MinGW has been used with JCC before and someone
on this list should be able to help you.
Yes, consistency is important here. Those flags (/EHsc and
/D_CRT_SECURE_NO_WARNINGS) look like Microsoft compiler directives to
me, and won't work with GCC.
In case it's of help, this is my build script for mingw and JCC 3.x.
I haven't tried this recently, but it should still work.
Bill
export JCC_ARGSEP=";"
export JCC_JDK="$WINSTYLEJAVAHOME"
export JCC_CFLAGS="-fno-strict-aliasing;-Wno-write-strings"
export JCC_LFLAGS="-L${WINSTYLEJAVAHOME}\\lib;-ljvm"
export
JCC_INCLUDES="${WINSTYLEJAVAHOME}\\include;${WINSTYLEJAVAHOME}\\include\\win32"
export JCC_JAVAC="${WINSTYLEJAVAHOME}\\bin\\javac.exe"
${python} setup.py build --compiler=mingw32 install
--single-version-externally-managed --root /c/ --prefix="${distdir}"
if [ -f jcc/jcc.lib ]; then
cp -p jcc/jcc.lib "${sitepackages}/jcc/jcc.lib"
fi
# for 3.x compiled with MinGW GCC 4.x and "--shared", we also need two
# GCC libraries
if [ -f /mingw/bin/libstdc++-6.dll ]; then
install -m 555 /mingw/bin/libstdc++-6.dll "${distdir}/bin/"
echo "copied libstdc++-6.dll"
fi
if [ -f /mingw/bin/libgcc_s_dw2-1.dll ]; then
install -m 555 /mingw/bin/libgcc_s_dw2-1.dll "${distdir}/bin/"
echo "copied libgcc_s_dw2-1.dll"
fi
You might want to search the list archives, this question has come up
before.
Andi..
Also, so many thanks in regards to the help you've given me; I
definitely
wouldnt have been able to move forward without it.
On Sat, May 26, 2012 at 6:24 PM, Andi Vajda <va...@apache.org> wrote:
On May 26, 2012, at 1:30, Mark Finkelstein <finkel.m...@gmail.com>
wrote:
Apparently the correct (I think) command is:
python -m jcc.__main__ --find-jvm-dll
But if I use this I get:
C:\Users\avastmatey>python -m jcc.__main__ --find-jvm-dll --jar
"C:\Program
Files\Micro-Manager-1.4\plugins\Micro-Manager\MMCoreJ.jar"
MMCoreJ.jar path = C:\Program
Files\Micro-Manager-1.4\plugins\Micro-Manager\MMCo
reJ.jar
C:\Program Files\Micro-Manager-1.4\plugins\Micro-Manager
C:\Program Files\Micro-Manager-1.4\plugins
C:\Program Files\Micro-Manager-1.4\plugins\mm\win32
C:\Program Files\Micro-Manager-1.4
C:\Program Files\Micro-Manager-1.4\mm\win32
Traceback (most recent call last):
File "C:\Python26\Lib\runpy.py", line 122, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "C:\Python26\Lib\runpy.py", line 34, in _run_code
exec code in run_globals
File "C:\Python26\lib\site-packages\jcc\__main__.py", line 104, in
<module>
cpp.jcc(sys.argv)
File "C:\Python26\lib\site-packages\jcc\cpp.py", line 632, in jcc
generics, _dll_export)
File "C:\Python26\lib\site-packages\jcc\cpp.py", line 766, in header
for method in cls.getDeclaredMethods():
jcc.cpp.JavaError: java.lang.NoClassDefFoundError:
org/json/JSONObject
Where is the org.json.JSONObject class defined ? If it's not in
MMCoreJ.jar then you need to tell jcc via the --classpath flag, for
example, so that it can find it.
Andi..
Java stacktrace:
java.lang.NoClassDefFoundError: org/json/JSONObject
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getDeclaredMethods(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.json.JSONObject
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 3 more
I tried --package org.json, but this did not work?
On Sat, May 26, 2012 at 10:09 AM, Mark Finkelstein <
finkel.m...@gmail.com>wrote:
It is at C:\Python26\Lib\site-packages\jcc.dll. I can also show you
my
installation log:
*** Installation started 2012/05/14 13:29 ***
Source: C:\Users\avastmatey\Downloads\JCC-2.13.win32-py2.6.exe
999 Root Key: HKEY_LOCAL_MACHINE
020 Reg DB Key:
[Software\Microsoft\Windows\CurrentVersion\Uninstall]JCC-py2.6
040 Reg DB Value:
[Software\Microsoft\Windows\CurrentVersion\Uninstall\JCC-py2.6]DisplayName=Python
2.6 JCC-2.13
040 Reg DB Value:
[Software\Microsoft\Windows\CurrentVersion\Uninstall\JCC-py2.6]UninstallString="C:\Python26\RemoveJCC.exe"
-u "C:\Python26\JCC-wininst.log"
200 File Copy: C:\Python26\Lib\site-packages\jcc.dll
100 Made Dir: C:\Python26\Lib\site-packages\jcc
200 File Copy: C:\Python26\Lib\site-packages\jcc\config.py
200 File Copy: C:\Python26\Lib\site-packages\jcc\cpp.py
200 File Copy: C:\Python26\Lib\site-packages\jcc\jcc.lib
200 File Copy: C:\Python26\Lib\site-packages\jcc\python.py
200 File Copy: C:\Python26\Lib\site-packages\jcc\windows.py
200 File Copy: C:\Python26\Lib\site-packages\jcc\_jcc.pyd
200 File Copy: C:\Python26\Lib\site-packages\jcc\__init__.py
200 File Copy: C:\Python26\Lib\site-packages\jcc\__main__.py
100 Made Dir: C:\Python26\Lib\site-packages\jcc\classes
100 Made Dir: C:\Python26\Lib\site-packages\jcc\classes\org
100 Made Dir: C:\Python26\Lib\site-packages\jcc\classes\org\apache
100 Made Dir:
C:\Python26\Lib\site-packages\jcc\classes\org\apache\jcc
200 File Copy:
C:\Python26\Lib\site-packages\jcc\classes\org\apache\jcc\PythonException.class
200 File Copy:
C:\Python26\Lib\site-packages\jcc\classes\org\apache\jcc\PythonVM.class
100 Made Dir: C:\Python26\Lib\site-packages\jcc\patches
200 File Copy: C:\Python26\Lib\site-packages\jcc\patches\patch.4195
200 File Copy:
C:\Python26\Lib\site-packages\jcc\patches\patch.43.0.6c11
200 File Copy:
C:\Python26\Lib\site-packages\jcc\patches\patch.43.0.6c7
100 Made Dir: C:\Python26\Lib\site-packages\jcc\sources
200 File Copy:
C:\Python26\Lib\site-packages\jcc\sources\functions.cpp
200 File Copy:
C:\Python26\Lib\site-packages\jcc\sources\functions.h
200 File Copy: C:\Python26\Lib\site-packages\jcc\sources\JArray.cpp
200 File Copy: C:\Python26\Lib\site-packages\jcc\sources\JArray.h
200 File Copy: C:\Python26\Lib\site-packages\jcc\sources\jcc.cpp
200 File Copy: C:\Python26\Lib\site-packages\jcc\sources\JCCEnv.cpp
200 File Copy: C:\Python26\Lib\site-packages\jcc\sources\JCCEnv.h
200 File Copy: C:\Python26\Lib\site-packages\jcc\sources\jccfuncs.h
200 File Copy:
C:\Python26\Lib\site-packages\jcc\sources\JObject.cpp
200 File Copy: C:\Python26\Lib\site-packages\jcc\sources\JObject.h
200 File Copy: C:\Python26\Lib\site-packages\jcc\sources\macros.h
200 File Copy: C:\Python26\Lib\site-packages\jcc\sources\types.cpp
100 Made Dir: C:\Python26\Lib\site-packages\JCC-2.13-py2.6.egg-info
200 File Copy:
C:\Python26\Lib\site-packages\JCC-2.13-py2.6.egg-info\dependency_links.txt
200 File Copy:
C:\Python26\Lib\site-packages\JCC-2.13-py2.6.egg-info\not-zip-safe
200 File Copy:
C:\Python26\Lib\site-packages\JCC-2.13-py2.6.egg-info\PKG-INFO
200 File Copy:
C:\Python26\Lib\site-packages\JCC-2.13-py2.6.egg-info\SOURCES.txt
200 File Copy:
C:\Python26\Lib\site-packages\JCC-2.13-py2.6.egg-info\top_level.txt
200 File Copy: C:\Python26\Lib\site-packages\jcc\__main__.pyc
200 File Copy: C:\Python26\Lib\site-packages\jcc\__init__.pyc
200 File Copy: C:\Python26\Lib\site-packages\jcc\windows.pyc
200 File Copy: C:\Python26\Lib\site-packages\jcc\python.pyc
200 File Copy: C:\Python26\Lib\site-packages\jcc\cpp.pyc
200 File Copy: C:\Python26\Lib\site-packages\jcc\config.pyc
200 File Copy: C:\Python26\Lib\site-packages\jcc\__main__.pyo
200 File Copy: C:\Python26\Lib\site-packages\jcc\__init__.pyo
200 File Copy: C:\Python26\Lib\site-packages\jcc\windows.pyo
200 File Copy: C:\Python26\Lib\site-packages\jcc\python.pyo
200 File Copy: C:\Python26\Lib\site-packages\jcc\cpp.pyo
200 File Copy: C:\Python26\Lib\site-packages\jcc\config.pyo
I also updated my PATH to be "C:\Program Files
(x86)\Java\jdk1.7.0_04\bin";"C:\Program Files
(x86)\Java\jdk1.7.0_04\lib";C:\Python26;C:\Python26\Lib\site-packages;C:\Python26\Lib\site-packages\PyQt4;"C:\Program
Files (x86)\MiKTeX 2.9\miktex/bin/";"C:\Program
Files\TortoiseSVN\bin";"C:\Program Files (x86)\CMake
2.8\bin";"C:\Program
Files (x86)\Java\jdk1.7.0_04\jre\bin\client"
Again, many thanks for the help.
On Sat, May 26, 2012 at 9:59 AM, Andi Vajda <va...@apache.org>
wrote:
On May 25, 2012, at 22:57, Mark Finkelstein <
finkel.m...@gmail.com
wrote:
Hello everyone!
I hope this is a relevant question. I was trying to use jcc to
create
a
wrapper for a different project's library but when I try to run
python
-m
jcc.main
I get the error C:\Python26\python.exe: DLL load failed: The
specified
module could not be found.
I'm not sure why this is since I put the directory containing
jcc.dll
into
my PATH. I am not sure if it will help, but the following is my
PATH:
C:\Python26;C:\Python26\Lib\site-packages;C:\Python26\Lib\site-packages\PyQt4;"C:\Program
Files (x86)\MiKTeX 2.9\miktex/bin/";"C:\Program
Files\TortoiseSVN\bin";"C:\Program Files (x86)\CMake
2.8\bin";"C:\Program
Files (x86)\Java\jdk1.7.0_04\jre\bin\client"
I don't think jcc.dll is likely to be in any of the directories of
the
PATH you show. What is the full path of the directory containing
jcc.dll on
your system ?
Andi..
Any help would be very much appreciated.
Thank you in advance,
Mark.