【发布时间】:2011-04-08 15:40:51
【问题描述】:
我正在与 JPype 做一个正确的旧噩梦。我在 Windows 上安装了我的开发环境,因此尝试在那里安装它,但没有成功。然后我尝试了 Ubunto 也没有运气。我现在有点绝望了。我正在使用 Mingw32,因为我尝试安装 VS2008,但它告诉我必须安装 XP SP2,但我在 Vista 上。我尝试了 VS2010 但没有运气,我得到了“错误:无法找到 vcvarsall.bat”错误。不管怎样,我现在在 Mingw32 上
最终我正在尝试使用 Neo4j 和 Python,因此我需要使用 JPype。我在网上找到了很多关于 MySQL 等问题的参考资料,但它们对 JPype 没有帮助。
如果我可以修复 unix 或 windows,我可以开始工作,因此我们将不胜感激。
这是版本..
Windows:Vista 64 蟒蛇:2.6 编译器 Mingw32:最新版本 Jpype:0.5.4.1 爪哇资料: java版本“1.6.0_13” Java(TM) SE 运行时环境 (build 1.6.0_13-b03) Java HotSpot(TM) 64 位服务器 VM(内部版本 11.3-b02,混合模式)
我跑:
python setup.py install --compiler=wingw32
并得到以下输出。
选择 Windows 配置文件 运行安装 运行构建 运行 build_py 运行 build_ext 构建“_jpype”扩展 C:\MinGW\bin\gcc.exe -mno-cygwin -mdll -O -Wall -DWIN32=1 "-IC:\Program Files (x86)\Java\jdk1.6.0_21/include" "-IC:\Program文件 (x86)\Java\jdk1.6.0_21/include/win32" -Isrc/native/common/include -Isrc/native/python/include -Ic:\Python26\include -Ic:\Python26\PC -c src/ native/common/jp_array.cpp -o build\temp.win32-2.6\Release\src\native\common\jp_array.o /EHsc src/native/common/jp_array.cpp:在成员函数'void JPArray::setRange(int, int, std::vector&)'中: src/native/common/jp_array.cpp:56:13:警告:有符号和无符号整数表达式之间的比较 src/native/common/jp_array.cpp:68:4: 警告:不推荐从字符串常量转换为 'char*' src/native/common/jp_array.cpp:在成员函数 'void JPArray::setItem(int, HostRef*)' 中: src/native/common/jp_array.cpp:80:3:警告:不推荐从字符串常量到“char *”的转换 gcc: /EHsc: 没有这样的文件或目录 错误:命令“gcc”失败,退出状态为 1
所以在unix Ubunto上问题如下:
Java 版本:1.6.0_18 类型:0.5.4.1 蟒蛇:2.6
Java 在路径中,我刚刚做了 apt-get install build-essentials 所以有最新的 GCC 等。
我不会粘贴所有输出,因为它很大。如此多的错误,就像我错过了 Java 或类似的安装,但我没有。输入 java 带我进入上面的版本。这是开始:
运行安装 运行构建 运行 build_py 运行 build_ext 构建“_jpype”扩展 gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/lib/jvm/java-1.5.0-sun-1.5.0.08/include -I/ usr/lib/jvm/java-1.5.0-sun-1.5.0.08/include/linux -Isrc/native/common/include -Isrc/native/python/include -I/usr/include/python2.6 -c src /native/common/jp_javaenv_autogen.cpp -o build/temp.linux-i686-2.6/src/native/common/jp_javaenv_autogen.o cc1plus:警告:命令行选项“-Wstrict-prototypes”对 Ada/C/ObjC 有效,但对 C++ 无效 在 src/native/common/jp_javaenv_autogen.cpp:21 包含的文件中: src/native/common/include/jpype.h:45:17: 错误: jni.h: 没有这样的文件或目录 在 src/native/common/jp_javaenv_autogen.cpp:21 包含的文件中: src/native/common/include/jpype.h:77:错误:ISO C++ 禁止声明没有类型的“jchar” src/native/common/include/jpype.h:77:错误:在“”标记之前需要“,”或“...” src/native/common/include/jpype.h:82:错误:ISO C++ 禁止声明没有类型的“jchar” src/native/common/include/jpype.h:82: 错误:在“”标记之前需要“;” src/native/common/include/jpype.h:86:错误:ISO C++ 禁止声明没有类型的“jchar” src/native/common/include/jpype.h:86: 错误: 预期的';' 在'&' 标记之前 src/native/common/include/jpype.h:88: 错误: 预期的‘;’在‘私人’之前 src/native/common/include/jpype.h:89:错误:ISO C++ 禁止声明没有类型的“jchar” src/native/common/include/jpype.h:89: 错误: 预期的';' 在'*' 标记之前 在 src/native/common/include/jpype.h:96 包含的文件中, 来自 src/native/common/jp_javaenv_autogen.cpp:21:
这就是结局:
src/native/common/include/jp_monitor.h:27:错误:“jobject”没有命名类型 src/native/common/jp_javaenv_autogen.cpp:30:错误:“jbyte”没有命名类型 src/native/common/jp_javaenv_autogen.cpp:38:错误:‘jbyte’没有命名类型 src/native/common/jp_javaenv_autogen.cpp:45:错误:变量或字段“SetStaticByteField”声明为无效 src/native/common/jp_javaenv_autogen.cpp:45:错误:“jclass”未在此范围内声明 src/native/common/jp_javaenv_autogen.cpp:45:错误:“jfieldID”未在此范围内声明 src/native/common/jp_javaenv_autogen.cpp:45:错误:“jbyte”未在此范围内声明 错误:命令“gcc”失败,退出状态为 1
【问题讨论】: