|
Mark Finkelstein
2012-05-26, 05:57
Andi Vajda
2012-05-26, 07:59
Mark Finkelstein
2012-05-26, 08:09
Mark Finkelstein
2012-05-26, 08:30
Andi Vajda
2012-05-26, 16:24
Mark Finkelstein
2012-05-26, 19:20
Andi Vajda
2012-05-26, 19:48
Bill Janssen
2012-05-26, 23:42
Mark Finkelstein
2012-05-27, 13:30
Andi Vajda
2012-05-27, 18:18
Mark Finkelstein
2012-05-28, 09:02
Andi Vajda
2012-05-28, 17:10
Mark Finkelstein
2012-05-28, 17:29
Andi Vajda
2012-05-28, 19:24
|
-
jcc dll loading errorMark Finkelstein 2012-05-26, 05:57
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" Any help would be very much appreciated. Thank you in advance, Mark. +
Mark Finkelstein 2012-05-26, 05:57
-
Re: jcc dll loading errorAndi Vajda 2012-05-26, 07:59
On May 25, 2012, at 22:57, Mark Finkelstein <[EMAIL PROTECTED]> 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. +
Andi Vajda 2012-05-26, 07:59
-
Re: jcc dll loading errorMark Finkelstein 2012-05-26, 08:09
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 <[EMAIL PROTECTED]> wrote: +
Mark Finkelstein 2012-05-26, 08:09
-
Re: jcc dll loading errorMark Finkelstein 2012-05-26, 08:30
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 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 <[EMAIL PROTECTED]>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 +
Mark Finkelstein 2012-05-26, 08:30
-
Re: jcc dll loading errorAndi Vajda 2012-05-26, 16:24
On May 26, 2012, at 1:30, Mark Finkelstein <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]>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 +
Andi Vajda 2012-05-26, 16:24
-
Re: jcc dll loading errorMark Finkelstein 2012-05-26, 19:20
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? 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 <[EMAIL PROTECTED]> wrote: > > On May 26, 2012, at 1:30, Mark Finkelstein <[EMAIL PROTECTED]> 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 < > [EMAIL PROTECTED]>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 +
Mark Finkelstein 2012-05-26, 19:20
-
Re: jcc dll loading errorAndi Vajda 2012-05-26, 19:48
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. 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 <[EMAIL PROTECTED]> wrote: > >> >> On May 26, 2012, at 1:30, Mark Finkelstein <[EMAIL PROTECTED]> 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 < >> [EMAIL PROTECTED]>wrote: >> +
Andi Vajda 2012-05-26, 19:48
-
Re: jcc dll loading errorBill Janssen 2012-05-26, 23:42
Andi Vajda <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> wrote: > > > >> > >> On May 26, 2012, at 1:30, Mark Finkelstein <[EMAIL PROTECTED]> 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 +
Bill Janssen 2012-05-26, 23:42
-
Re: jcc dll loading errorMark Finkelstein 2012-05-27, 13:30
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: import jcc import CMMCore3 vm=jcc.initVM() vm.attachCurrentThread() 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 Which leads me to assume that the vm intialization is not global, which seems contrary to the description? Again, many thanks for the amazing support! Mark. On Sun, May 27, 2012 at 1:42 AM, Bill Janssen <[EMAIL PROTECTED]> wrote: > Andi Vajda <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> wrote: > > > > > >> > > >> On May 26, 2012, at 1:30, Mark Finkelstein <[EMAIL PROTECTED]> > 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 +
Mark Finkelstein 2012-05-27, 13:30
-
Re: jcc dll loading errorAndi Vajda 2012-05-27, 18:18
On May 27, 2012, at 6:30, Mark Finkelstein <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> wrote: > >> Andi Vajda <[EMAIL PROTECTED]> 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 +
Andi Vajda 2012-05-27, 18:18
-
Re: jcc dll loading errorMark Finkelstein 2012-05-28, 09:02
Thank you, the examples work great! I was able to get basic functionality
going, but when I tried to wrap a different jar file I got the following exception: jcc.cpp.JavaError: java.lang.ExceptionInInitializerError Java stacktrace: java.lang.ExceptionInInitializerError Caused by: java.lang.NullPointerException at org.micromanager.utils.ImageUtils.<clinit>(ImageUtils.java:23) There's actually one class that I really want to wrap, it's located in a jar file that I have in my classpath. I have also tried using --package org.micromanager, since this is the package the class resides in, but it seems as if this gets ignored. Right now the command I'm using is: C:\Users\avastmatey>python -m jcc.__main__ --find-jvm-dll --package java.lang --package java.util --package java.io --jar "C:\Program Files\Micro-Manager-1.4\plugins\Micro-Manager\MMCoreJ.jar" --jar "C:\Program Files\Micro-Manager-1.4\plugins\Micro-Manager\MMJ_.jar" --classpath %CLASSPATH% --python CMMCore3 --version 2.6 --build --compiler msvc --install where MMJ_ is the jar which contains the class I would like to wrap. I think that the other classes in this jar are perhaps stopping this from happening? I tried to extract this jar, but got a bunch of classes with $1.class at the end, which I dont think represent the class I would like to wrap. Many thanks! Mark. On Sun, May 27, 2012 at 8:18 PM, Andi Vajda <[EMAIL PROTECTED]> wrote: > > On May 27, 2012, at 6:30, Mark Finkelstein <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> wrote: > > > >> Andi Vajda <[EMAIL PROTECTED]> 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 +
Mark Finkelstein 2012-05-28, 09:02
-
Re: jcc dll loading errorAndi Vajda 2012-05-28, 17:10
On Mon, 28 May 2012, Mark Finkelstein wrote: > Thank you, the examples work great! I was able to get basic functionality > going, but when I tried to wrap a different jar file I got the following > exception: > > jcc.cpp.JavaError: java.lang.ExceptionInInitializerError > Java stacktrace: > java.lang.ExceptionInInitializerError > Caused by: java.lang.NullPointerException > at org.micromanager.utils.ImageUtils.<clinit>(ImageUtils.java:23) JCC uses Java's reflection API to determine the signatures of methods to wrap. Thus, it needs to load all classes it processes. This particular class has a static initializer that is failing. You need to look at that static initializer's code and modify it so that plainly loading the class can work. Currently, something else is needed by this class at load time that JCC cannot provide. Maybe it's possible to pass some extra command line arguments, maybe you need to change its code to let that null pointer pass for the sake of being able to plainly load this class like JCC is trying to to. For example, wrapping AWT classes fails in a similar way and there is a command line flag to work that around (and it is passed to the JVM by JCC by default, -Djava.awt.headless=true). > There's actually one class that I really want to wrap, it's located in a > jar file that I have in my classpath. I have also tried using --package > org.micromanager, since this is the package the class resides in, but it > seems as if this gets ignored. Having a class on your classpath is not enough to have it wrapped by JCC. You need to put its classname onto the JCC command line or pass its jar file with --jar. --package is different. It is used to wrap dependent classes found in the signatures of methods of classes you explicitely asked to have wrapped. Without --package, these methods would be skipped instead. Run the command below to get more details about all of JCC's command line arguments: $ python -m jcc.__main__ > Right now the command I'm using is: > > C:\Users\avastmatey>python -m jcc.__main__ --find-jvm-dll --package > java.lang --package java.util --package java.io --jar "C:\Program > Files\Micro-Manager-1.4\plugins\Micro-Manager\MMCoreJ.jar" --jar > "C:\Program > Files\Micro-Manager-1.4\plugins\Micro-Manager\MMJ_.jar" --classpath > %CLASSPATH% --python CMMCore3 --version 2.6 --build --compiler msvc > --install > > where MMJ_ is the jar which contains the class I would like to wrap. I > think that the other classes in this jar are perhaps stopping this from > happening? I tried to extract this jar, but got a bunch of classes with > $1.class at the end, which I dont think represent the class I would like to > wrap. So you are explicitely requesting with via --jar. Good. Thus it must be wrapped. How do you determine that it's not being wrapped ? Because of missing methods ? Look at their signatures and be sure that all classes they mention at least be listed via their package with --package. $1.class class names are due to anonymous inner classes in your classes. This is a normal Java thing, nothing to do with JCC. Andi.. > > Many thanks! > > Mark. > > On Sun, May 27, 2012 at 8:18 PM, Andi Vajda <[EMAIL PROTECTED]> wrote: > >> >> On May 27, 2012, at 6:30, Mark Finkelstein <[EMAIL PROTECTED]> 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 +
Andi Vajda 2012-05-28, 17:10
-
Re: jcc dll loading errorMark Finkelstein 2012-05-28, 17:29
It is with that last stated command prompt entry that I get the exception.
The thing is, the vast majority classes in the jar (which is made up of several packages) I do not need in order to run this one class, but I think it's failing with the exception because it's trying to wrap these other classes in the jar that I would rather not have wrapped. On Mon, May 28, 2012 at 7:10 PM, Andi Vajda <[EMAIL PROTECTED]> wrote: > > On Mon, 28 May 2012, Mark Finkelstein wrote: > > Thank you, the examples work great! I was able to get basic functionality >> going, but when I tried to wrap a different jar file I got the following >> exception: >> >> jcc.cpp.JavaError: java.lang.**ExceptionInInitializerError >> Java stacktrace: >> java.lang.**ExceptionInInitializerError >> Caused by: java.lang.NullPointerException >> at org.micromanager.utils.**ImageUtils.<clinit>(** >> ImageUtils.java:23) >> > > JCC uses Java's reflection API to determine the signatures of methods to > wrap. Thus, it needs to load all classes it processes. > > This particular class has a static initializer that is failing. You need > to look at that static initializer's code and modify it so that plainly > loading the class can work. Currently, something else is needed by this > class at load time that JCC cannot provide. Maybe it's possible to pass > some extra command line arguments, maybe you need to change its code to let > that null pointer pass for the sake of being able to plainly load this > class like JCC is trying to to. > > For example, wrapping AWT classes fails in a similar way and there is a > command line flag to work that around (and it is passed to the JVM by JCC > by default, -Djava.awt.headless=true). > > > There's actually one class that I really want to wrap, it's located in a >> jar file that I have in my classpath. I have also tried using --package >> org.micromanager, since this is the package the class resides in, but it >> seems as if this gets ignored. >> > > Having a class on your classpath is not enough to have it wrapped by JCC. > You need to put its classname onto the JCC command line or pass its jar > file with --jar. > --package is different. It is used to wrap dependent classes found in the > signatures of methods of classes you explicitely asked to have wrapped. > Without --package, these methods would be skipped instead. > > Run the command below to get more details about all of JCC's command line > arguments: > > $ python -m jcc.__main__ > > > Right now the command I'm using is: >> >> C:\Users\avastmatey>python -m jcc.__main__ --find-jvm-dll --package >> java.lang --package java.util --package java.io --jar "C:\Program >> Files\Micro-Manager-1.4\**plugins\Micro-Manager\MMCoreJ.**jar" --jar >> "C:\Program >> Files\Micro-Manager-1.4\**plugins\Micro-Manager\MMJ_.**jar" --classpath >> %CLASSPATH% --python CMMCore3 --version 2.6 --build --compiler msvc >> --install >> >> where MMJ_ is the jar which contains the class I would like to wrap. I >> think that the other classes in this jar are perhaps stopping this from >> happening? I tried to extract this jar, but got a bunch of classes with >> $1.class at the end, which I dont think represent the class I would like >> to >> wrap. >> > > So you are explicitely requesting with via --jar. Good. Thus it must be > wrapped. How do you determine that it's not being wrapped ? > Because of missing methods ? Look at their signatures and be sure that all > classes they mention at least be listed via their package with --package. > > $1.class class names are due to anonymous inner classes in your classes. > This is a normal Java thing, nothing to do with JCC. > > Andi.. > > > >> Many thanks! >> >> Mark. >> >> On Sun, May 27, 2012 at 8:18 PM, Andi Vajda <[EMAIL PROTECTED]> wrote: >> >> >>> On May 27, 2012, at 6:30, Mark Finkelstein <[EMAIL PROTECTED]> >>> 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 +
Mark Finkelstein 2012-05-28, 17:29
-
Re: jcc dll loading errorAndi Vajda 2012-05-28, 19:24
On May 28, 2012, at 10:29, Mark Finkelstein <[EMAIL PROTECTED]> wrote: > It is with that last stated command prompt entry that I get the exception. The thing is, the vast majority classes in the jar (which is made up of several packages) I do not need in order to run this one class, but I think it's failing with the exception because it's trying to wrap these other classes in the jar that I would rather not have wrapped. Then just list that classname on the jcc command line (no flag needed) and move that jar file to your classpath or to --include. Andi.. > > On Mon, May 28, 2012 at 7:10 PM, Andi Vajda <[EMAIL PROTECTED]> wrote: > > On Mon, 28 May 2012, Mark Finkelstein wrote: > > Thank you, the examples work great! I was able to get basic functionality > going, but when I tried to wrap a different jar file I got the following > exception: > > jcc.cpp.JavaError: java.lang.ExceptionInInitializerError > Java stacktrace: > java.lang.ExceptionInInitializerError > Caused by: java.lang.NullPointerException > at org.micromanager.utils.ImageUtils.<clinit>(ImageUtils.java:23) > > JCC uses Java's reflection API to determine the signatures of methods to wrap. Thus, it needs to load all classes it processes. > > This particular class has a static initializer that is failing. You need to look at that static initializer's code and modify it so that plainly loading the class can work. Currently, something else is needed by this class at load time that JCC cannot provide. Maybe it's possible to pass some extra command line arguments, maybe you need to change its code to let that null pointer pass for the sake of being able to plainly load this class like JCC is trying to to. > > For example, wrapping AWT classes fails in a similar way and there is a command line flag to work that around (and it is passed to the JVM by JCC by default, -Djava.awt.headless=true). > > > There's actually one class that I really want to wrap, it's located in a > jar file that I have in my classpath. I have also tried using --package > org.micromanager, since this is the package the class resides in, but it > seems as if this gets ignored. > > Having a class on your classpath is not enough to have it wrapped by JCC. You need to put its classname onto the JCC command line or pass its jar file with --jar. > --package is different. It is used to wrap dependent classes found in the signatures of methods of classes you explicitely asked to have wrapped. Without --package, these methods would be skipped instead. > > Run the command below to get more details about all of JCC's command line arguments: > > $ python -m jcc.__main__ > > > Right now the command I'm using is: > > C:\Users\avastmatey>python -m jcc.__main__ --find-jvm-dll --package > java.lang --package java.util --package java.io --jar "C:\Program > Files\Micro-Manager-1.4\plugins\Micro-Manager\MMCoreJ.jar" --jar > "C:\Program > Files\Micro-Manager-1.4\plugins\Micro-Manager\MMJ_.jar" --classpath > %CLASSPATH% --python CMMCore3 --version 2.6 --build --compiler msvc > --install > > where MMJ_ is the jar which contains the class I would like to wrap. I > think that the other classes in this jar are perhaps stopping this from > happening? I tried to extract this jar, but got a bunch of classes with > $1.class at the end, which I dont think represent the class I would like to > wrap. > > So you are explicitely requesting with via --jar. Good. Thus it must be wrapped. How do you determine that it's not being wrapped ? > Because of missing methods ? Look at their signatures and be sure that all classes they mention at least be listed via their package with --package. > > $1.class class names are due to anonymous inner classes in your classes. This is a normal Java thing, nothing to do with JCC. > > Andi.. > > > > Many thanks! > > Mark. > > On Sun, May 27, 2012 at 8:18 PM, Andi Vajda <[EMAIL PROTECTED]> wrote: > > > On May 27, 2012, at 6:30, Mark Finkelstein <[EMAIL PROTECTED]> wrote: +
Andi Vajda 2012-05-28, 19:24
|