Closed sudhanvas closed 6 years ago
A quick Google shows that the incgc
option is deprecated in Java version 10. Not sure what the replacement is, but it should work fine without it. As for your jni issues. Can you provide the exact steps you did to build and install zcm and then run spy?
And can you paste the output of your build commands at each step?
./waf configure --use-all
had the following output:
---> Running in fe464d75bea2
Setting top to : /usr/local/src/zcm
Setting out to : /usr/local/src/zcm/build
Checking for 'gcc' (C compiler) : /usr/bin/gcc
Checking for 'g++' (C++ compiler) : /usr/bin/g++
Checking for program 'javac' : /usr/lib/jvm/default-java/bin/javac
Checking for program 'java' : /usr/lib/jvm/default-java/bin/java
Checking for program 'jar' : /usr/lib/jvm/default-java/bin/jar
Checking for program 'javadoc' : /usr/lib/jvm/default-java/bin/javadoc
Checking for header jni.h : yes
Checking for program 'node' : /usr/bin/node
Checking for program 'npm' : /usr/bin/npm
Checking for program 'python' : /usr/bin/python
Checking for python version : 2.7.15
python-config : /usr/bin/python-config
Asking python-config for pyembed '--cflags --libs --ldflags' flags : yes
Testing pyembed configuration : yes
Asking python-config for pyext '--cflags --libs --ldflags' flags : yes
Testing pyext configuration : yes
Checking for program 'cython' : /usr/local/bin/cython
Checking for program 'pkg-config' : /usr/bin/pkg-config
Checking for 'libzmq' : yes
ZCM Version: 1.0.0
Dependency Configuration:
C/C++ Enabled
Java Enabled
NodeJs Enabled
Python Enabled
ZeroMQ Enabled
Elf Enabled
Third Party Disabled
Transport Configuration:
ipc Enabled
inproc Enabled
udpm Enabled
serial Enabled
Type Configuration:
hash-typename Enabled
hash-member-names Disabled
Dev Configuration:
Clang Disabled
CxxTest Disabled
'configure' finished successfully (0.620s)
./waf build
had the following output:
[ 1/77] Compiling zcm/blocking.cpp
[ 2/77] Compiling zcm/eventlog.c
[ 3/77] Compiling zcm/json/jsoncpp.cpp
[ 4/77] Compiling zcm/nonblocking.c
[ 5/77] Compiling zcm/tools/IndexerPlugin.cpp
[ 6/77] Compiling zcm/transport/generic_serial_transport.c
[ 7/77] Compiling zcm/transport/transport_file.cpp
[ 8/77] Compiling zcm/transport/transport_inproc.cpp
[ 9/77] Compiling zcm/transport/transport_serial.cpp
[10/77] Compiling zcm/transport/transport_zmq_local.cpp
[11/77] Compiling zcm/transport/udpm/buffers.cpp
[12/77] Compiling zcm/transport/udpm/mempool.cpp
[13/77] Compiling zcm/transport/udpm/udpm.cpp
[14/77] Compiling zcm/transport/udpm/udpmsocket.cpp
[15/77] Compiling zcm/transport_registrar.c
[16/77] Compiling zcm/url.cpp
[17/77] Compiling zcm/util/debug.cpp
[18/77] Compiling zcm/util/lockfile.cpp
[19/77] Compiling zcm/zcm.c
[20/77] Compiling zcm/java/jni/zcm_zcm_ZCMJNI.c
[21/77] Processing javac: zcm/java/zcm/zcm/MessageAggregator.java zcm/java/zcm/zcm/Provider.java zcm/java/zcm/zcm/URLParser.java zcm/java/zcm/zcm/ZCM.java zcm/java/zcm/zcm/ZCMDataInputStream.java zcm/java/zcm/zc
m/ZCMDataOutputStream.java zcm/java/zcm/zcm/ZCMEncodable.java zcm/java/zcm/zcm/ZCMJNI.java zcm/java/zcm/zcm/ZCMSubscriber.java
[22/77] Processing zerocm-1.0.0.tgz: zcm/js/node/README.md zcm/js/node/index.js zcm/js/node/package.json -> build/zcm/js/zerocm-1.0.0.tgz
[23/77] Compiling zcm/js/client/zcm-client.js
[24/77] Compiling zcm/python/zcm.pyx
[25/77] Compiling config/zcm.pc.in
[26/77] Compiling config/zcm-tools.pc.in
[27/77] Compiling gen/GetOpt.cpp
[28/77] Compiling gen/Main.cpp
[29/77] Compiling gen/ZCMGen.cpp
[30/77] Compiling gen/emit/EmitC.cpp
[31/77] Compiling gen/emit/EmitCpp.cpp
[32/77] Compiling gen/emit/EmitJava.cpp
[33/77] Compiling gen/emit/EmitNode.cpp
[34/77] Compiling gen/emit/EmitPython.cpp
[35/77] Compiling gen/emit/Emitter.cpp
[36/77] Compiling gen/tokenize.c
[37/77] Compiling tools/cpp/util/SymtabElf.cpp
[38/77] Compiling tools/cpp/util/TranscoderPluginDb.cpp
[39/77] Compiling tools/cpp/util/TypeDb.cpp
[40/77] Compiling tools/cpp/logplayer/main.cpp
[41/77] Compiling tools/cpp/repeater/main.cpp
[42/77] Compiling tools/cpp/spy-peek/main.cpp
[43/77] Compiling tools/cpp/spy-lite/Debug.cpp
[44/77] Compiling tools/cpp/spy-lite/MsgDisplay.cpp
[45/77] Compiling tools/cpp/spy-lite/MsgInfo.cpp
[46/77] Compiling tools/cpp/spy-lite/main.cpp
[47/77] Compiling tools/cpp/indexer/IndexerPluginDb.cpp
[48/77] Compiling tools/cpp/indexer/main.cpp
[49/77] Compiling tools/cpp/transcoder/main.cpp
[50/77] Compiling tools/cpp/logger/main.cpp
[51/77] Compiling tools/cpp/bridge/main.cpp
[52/77] Compiling tools/java/zcm-spy.in
[53/77] Compiling tools/java/zcm-logplayer-gui.in
[54/77] Compiling tools/java/zcm-csv-writer.in
[55/77] Compiling tools/java/zcm-csv-reader.in
[56/77] Compiling tools/java/zcm-log-transcoder-java.in
[57/77] Creating build/zcm.gitid
[58/77] Compiling build/zcm/python/zcm.c
[59/77] Processing jar_create: build/zcm/java/classes/zcm/zcm/MessageAggregator$Message.class build/zcm/java/classes/zcm/zcm/MessageAggregator.class build/zcm/java/classes/zcm/zcm/Provider.class build/zcm/java/c
lasses/zcm/zcm/URLParser.class build/zcm/java/classes/zcm/zcm/ZCM$SimpleSubscriber.class build/zcm/java/classes/zcm/zcm/ZCM$SubscriptionRecord.class build/zcm/java/classes/zcm/zcm/ZCM.class build/zcm/java/classe
s/zcm/zcm/ZCMDataInputStream.class build/zcm/java/classes/zcm/zcm/ZCMDataOutputStream.class build/zcm/java/classes/zcm/zcm/ZCMEncodable.class build/zcm/java/classes/zcm/zcm/ZCMJNI.class build/zcm/java/classes/zc
m/zcm/ZCMSubscriber.class -> build/zcm/java/zcm.jar
[60/77] Linking build/zcm/libzcm.so
[61/77] Linking build/tools/cpp/util/libzcm_tools_util.a
[62/77] Linking build/gen/zcm-gen
[63/77] Processing embed-tar: zcm/nonblocking.c zcm/nonblocking.h zcm/transport/generic_serial_transport.c zcm/transport/generic_serial_transport.h zcm/transport.h zcm/zcm-cpp-impl.hpp zcm/zcm-cpp.hpp zcm/zcm.c
zcm/zcm.h zcm/zcm_coretypes.h zcm/zcm_private.h build/zcm.gitid -> build/zcm/.zcm-embed-tmp.tar.gz
tar: Removing leading `../' from member names
[64/77] Linking build/tools/cpp/logplayer/zcm-logplayer
[65/77] Linking build/zcm/java/libzcmjni.so
[66/77] Linking build/tools/cpp/spy-lite/zcm-spy-lite
[67/77] Linking build/tools/cpp/transcoder/zcm-log-transcoder
[68/77] Linking build/tools/cpp/spy-peek/zcm-spy-peek
[69/77] Compiling build/zcm/.zcm-embed-tmp.tar.gz
[70/77] Processing javac: tools/java/zcm/logging/CsvReader.java tools/java/zcm/logging/CsvReaderPlugin.java tools/java/zcm/logging/CsvWriter.java tools/java/zcm/logging/CsvWriterPlugin.java tools/java/zcm/loggin
g/JScrubber.java tools/java/zcm/logging/JScrubberListener.java tools/java/zcm/logging/Log.java tools/java/zcm/logging/LogDiagnostic.java tools/java/zcm/logging/LogPlayer.java tools/java/zcm/logging/Logger.java t
ools/java/zcm/logging/Transcoder.java tools/java/zcm/logging/TranscoderPlugin.java tools/java/zcm/spy/ChannelData.java tools/java/zcm/spy/ObjectPanel.java tools/java/zcm/spy/Spy.java tools/java/zcm/spy/SpyPlugin
.java tools/java/zcm/util/BufferedRandomAccessFile.java tools/java/zcm/util/ClassDiscoverer.java tools/java/zcm/util/ColorMapper.java tools/java/zcm/util/JImage.java tools/java/zcm/util/ParameterGUI.java tools/j
ava/zcm/util/ParameterListener.java tools/java/zcm/util/TableSorter.java tools/java/zcm/util/ZCMTypeDatabase.java
[71/77] Compiling build/zcm/zcm-embed.tar.gz
[72/77] Linking build/tools/cpp/indexer/zcm-log-indexer
[73/77] Linking build/tools/cpp/bridge/zcm-bridge
[74/77] Linking build/zcm/python/zcm.so
[75/77] Linking build/tools/cpp/repeater/zcm-repeater
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
[76/77] Processing jar_create: build/tools/java/classes/zcm/logging/CsvReader$1.class build/tools/java/classes/zcm/logging/CsvReader$PluginClassVisitor.class build/tools/java/classes/zcm/logging/CsvReader.class
build/tools/java/classes/zcm/logging/CsvReaderPlugin.class build/tools/java/classes/zcm/logging/CsvWriter$1.class build/tools/java/classes/zcm/logging/CsvWriter$PluginClassVisitor.class build/tools/java/classes/
zcm/logging/CsvWriter.class build/tools/java/classes/zcm/logging/CsvWriterPlugin.class build/tools/java/classes/zcm/logging/JScrubber$Bookmark.class build/tools/java/classes/zcm/logging/JScrubber$ExportAction.cl
ass build/tools/java/classes/zcm/logging/JScrubber$MyMouseAdapter.class build/tools/java/classes/zcm/logging/JScrubber$PopupAction.class build/tools/java/classes/zcm/logging/JScrubber$ZoomAction.class build/tool
s/java/classes/zcm/logging/JScrubber.class build/tools/java/classes/zcm/logging/JScrubberListener.class build/tools/java/classes/zcm/logging/Log$Event.class build/tools/java/classes/zcm/logging/Log.class build/t
ools/java/classes/zcm/logging/LogDiagnostic.class build/tools/java/classes/zcm/logging/LogPlayer$1.class build/tools/java/classes/zcm/logging/LogPlayer$2.class build/tools/java/classes/zcm/logging/LogPlayer$3.cl
ass build/tools/java/classes/zcm/logging/LogPlayer$4.class build/tools/java/classes/zcm/logging/LogPlayer$5.class build/tools/java/classes/zcm/logging/LogPlayer$6.class build/tools/java/classes/zcm/logging/LogPl
ayer$7.class build/tools/java/classes/zcm/logging/LogPlayer$8.class build/tools/java/classes/zcm/logging/LogPlayer$Filter.class build/tools/java/classes/zcm/logging/LogPlayer$FilterTableModel.class build/tools/j
ava/classes/zcm/logging/LogPlayer$MyScrubberListener.class build/tools/java/classes/zcm/logging/LogPlayer$PlayPauseEvent.class build/tools/java/classes/zcm/logging/LogPlayer$PlayerThread.class build/tools/java/c
lasses/zcm/logging/LogPlayer$QueueThread.class build/tools/java/classes/zcm/logging/LogPlayer$QueuedEvent.class build/tools/java/classes/zcm/logging/LogPlayer$SeekEvent.class build/tools/java/classes/zcm/logging
/LogPlayer$StepEvent.class build/tools/java/classes/zcm/logging/LogPlayer$UDPThread.class build/tools/java/classes/zcm/logging/LogPlayer.class build/tools/java/classes/zcm/logging/Logger.class build/tools/java/c
lasses/zcm/logging/Transcoder$1.class build/tools/java/classes/zcm/logging/Transcoder$PluginClassVisitor.class build/tools/java/classes/zcm/logging/Transcoder.class build/tools/java/classes/zcm/logging/Transcode
rPlugin.class build/tools/java/classes/zcm/spy/ChannelData.class build/tools/java/classes/zcm/spy/ObjectPanel$MyMouseAdapter.class build/tools/java/classes/zcm/spy/ObjectPanel$PaintState.class build/tools/java/c
lasses/zcm/spy/ObjectPanel$Section.class build/tools/java/classes/zcm/spy/ObjectPanel.class build/tools/java/classes/zcm/spy/Spy$1.class build/tools/java/classes/zcm/spy/Spy$2.class build/tools/java/classes/zcm/
spy/Spy$3.class build/tools/java/classes/zcm/spy/Spy$ChannelTableModel.class build/tools/java/classes/zcm/spy/Spy$DefaultViewer.class build/tools/java/classes/zcm/spy/Spy$HzThread.class build/tools/java/classes/
zcm/spy/Spy$MySubscriber.class build/tools/java/classes/zcm/spy/Spy$PluginClassVisitor.class build/tools/java/classes/zcm/spy/Spy.class build/tools/java/classes/zcm/spy/SpyPlugin.class build/tools/java/classes/z
cm/util/BufferedRandomAccessFile.class build/tools/java/classes/zcm/util/ClassDiscoverer$1.class build/tools/java/classes/zcm/util/ClassDiscoverer$ClassVisitor.class build/tools/java/classes/zcm/util/ClassDiscov
erer.class build/tools/java/classes/zcm/util/ColorMapper.class build/tools/java/classes/zcm/util/JImage$1.class build/tools/java/classes/zcm/util/JImage$MyListener.class build/tools/java/classes/zcm/util/JImage$
ScaleAction.class build/tools/java/classes/zcm/util/JImage.class build/tools/java/classes/zcm/util/ParameterGUI$1.class build/tools/java/classes/zcm/util/ParameterGUI$ActionNotifier.class build/tools/java/classe
s/zcm/util/ParameterGUI$BooleanValue$1.class build/tools/java/classes/zcm/util/ParameterGUI$BooleanValue.class build/tools/java/classes/zcm/util/ParameterGUI$DoubleValue$1.class build/tools/java/classes/zcm/util
/ParameterGUI$DoubleValue$2.class build/tools/java/classes/zcm/util/ParameterGUI$DoubleValue.class build/tools/java/classes/zcm/util/ParameterGUI$IntegerValue$1.class build/tools/java/classes/zcm/util/ParameterG
UI$IntegerValue$2.class build/tools/java/classes/zcm/util/ParameterGUI$IntegerValue.class build/tools/java/classes/zcm/util/ParameterGUI$JTFListener.class build/tools/java/classes/zcm/util/ParameterGUI$PValue.cl
ass build/tools/java/classes/zcm/util/ParameterGUI$StringValue$1.class build/tools/java/classes/zcm/util/ParameterGUI$StringValue$2.class build/tools/java/classes/zcm/util/ParameterGUI$StringValue.class build/to
ols/java/classes/zcm/util/ParameterGUI.class build/tools/java/classes/zcm/util/ParameterListener.class build/tools/java/classes/zcm/util/TableSorter$1.class build/tools/java/classes/zcm/util/TableSorter$2.class
build/tools/java/classes/zcm/util/TableSorter$Arrow.class build/tools/java/classes/zcm/util/TableSorter$Directive.class build/tools/java/classes/zcm/util/TableSorter$MouseHandler.class build/tools/java/classes/z
cm/util/TableSorter$Row.class build/tools/java/classes/zcm/util/TableSorter$SortableHeaderRenderer.class build/tools/java/classes/zcm/util/TableSorter$TableModelHandler.class build/tools/java/classes/zcm/util/Ta
bleSorter.class build/tools/java/classes/zcm/util/ZCMTypeDatabase$MyClassVisitor.class build/tools/java/classes/zcm/util/ZCMTypeDatabase.class -> build/tools/java/zcm-tools.jar
[77/77] Linking build/tools/cpp/logger/zcm-logger
Waf: Leaving directory `/usr/local/src/zcm/build'
'build' finished successfully (12.716s)
Finally, sudo ./waf install
had the following output:
Waf: Entering directory `/usr/local/src/zcm/build'
+ install /usr/local/share/scripts/install-zcm-deps.sh (from scripts/install-deps.sh)
+ install /usr/local/lib/libzcm.so (from build/zcm/libzcm.so)
+ install /usr/local/include/zcm/util/Filter.hpp (from zcm/util/Filter.hpp)
+ install /usr/local/include/zcm/tools/IndexerPlugin.hpp (from zcm/tools/IndexerPlugin.hpp)
+ install /usr/local/include/zcm/zcm.h (from zcm/zcm.h)
+ install /usr/local/include/zcm/json/json.h (from zcm/json/json.h)
+ install /usr/local/include/zcm/transport/generic_serial_transport.h (from zcm/transport/generic_serial_transport.h)
+ install /usr/local/include/zcm/tools/TranscoderPlugin.hpp (from zcm/tools/TranscoderPlugin.hpp)
+ install /usr/local/lib/libzcmjni.so (from build/zcm/java/libzcmjni.so)
+ install /usr/local/include/zcm/zcm_coretypes.h (from zcm/zcm_coretypes.h)
+ install /usr/local/include/zcm/json/json-forwards.h (from zcm/json/json-forwards.h)
+ install /usr/local/include/zcm/transport.h (from zcm/transport.h)
+ install /usr/local/include/zcm/transport_registrar.h (from zcm/transport_registrar.h)
+ install /usr/local/include/zcm/url.h (from zcm/url.h)
+ install /usr/local/include/zcm/eventlog.h (from zcm/eventlog.h)
+ install /usr/local/include/zcm/zcm-cpp.hpp (from zcm/zcm-cpp.hpp)
+ install /usr/local/include/zcm/zcm-cpp-impl.hpp (from zcm/zcm-cpp-impl.hpp)
+ install /usr/local/include/zcm/transport_register.hpp (from zcm/transport_register.hpp)
+ install /usr/local/share/java/zcm.jar (from build/zcm/java/zcm.jar)
+ install /usr/local/include/zcm/message_tracker.hpp (from zcm/message_tracker.hpp)
+ install /usr/local/share/node/zcm-client.js (from build/zcm/js/zcm-client.js)
+ install /usr/local/share/node/zerocm-1.0.0.tgz (from build/zcm/js/zerocm-1.0.0.tgz)
+ install /usr/local/lib/python2.7/dist-packages/zcm.so (from build/zcm/python/zcm.so)
+ install /usr/local/lib/pkgconfig/zcm.pc (from build/config/zcm.pc)
+ install /usr/local/lib/pkgconfig/zcm-tools.pc (from build/config/zcm-tools.pc)
+ install /usr/local/bin/zcm-gen (from build/gen/zcm-gen)
+ install /usr/local/share/waf/zcm-gen.py (from examples/waftools/zcm-gen.py)
+ install /usr/local/bin/zcm-logplayer (from build/tools/cpp/logplayer/zcm-logplayer)
+ install /usr/local/bin/zcm-repeater (from build/tools/cpp/repeater/zcm-repeater)
+ install /usr/local/bin/zcm-spy-peek (from build/tools/cpp/spy-peek/zcm-spy-peek)
+ install /usr/local/bin/zcm-spy-lite (from build/tools/cpp/spy-lite/zcm-spy-lite)
+ install /usr/local/bin/zcm-log-indexer (from build/tools/cpp/indexer/zcm-log-indexer)
+ install /usr/local/bin/zcm-log-transcoder (from build/tools/cpp/transcoder/zcm-log-transcoder)
+ install /usr/local/bin/zcm-logger (from build/tools/cpp/logger/zcm-logger)
+ install /usr/local/bin/zcm-bridge (from build/tools/cpp/bridge/zcm-bridge)
+ install /usr/local/share/java/zcm-tools.jar (from build/tools/java/zcm-tools.jar)
+ install /usr/local/bin/zcm-spy (from build/tools/java/zcm-spy)
+ install /usr/local/bin/zcm-logplayer-gui (from build/tools/java/zcm-logplayer-gui)
+ install /usr/local/bin/zcm-csv-writer (from build/tools/java/zcm-csv-writer)
+ install /usr/local/bin/zcm-csv-reader (from build/tools/java/zcm-csv-reader)
[103/107] Creating build/zcm.gitid
+ install /usr/local/bin/zcm-log-transcoder-java (from build/tools/java/zcm-log-transcoder-java)
+ install /usr/local/lib/zcm.gitid (from build/zcm.gitid)
Waf: Leaving directory `/usr/local/src/zcm/build'
'install' finished successfully (0.087s)
I actually just ran the following to being zcm-spy
up:
jars=/usr/local/share/java/zcm-tools.jar:/usr/local/share/java/zcm.jar
java -server -Xmx128m -Xms64m -ea -cp $jars zcm.spy.Spy --zcm-url ipc
I've also tried running zcm-spy --zcm-url ipc
.
FWIW, I see the same issue with JNI in Ubuntu 16.04 with the following Java version:
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-0ubuntu0.16.04.1-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)
This is the actual error:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no zcmjni in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at zcm.zcm.ZCMJNI.<clinit>(ZCMJNI.java:7)
at zcm.zcm.ZCM.<init>(ZCM.java:37)
at zcm.spy.Spy.<init>(Spy.java:77)
at zcm.spy.Spy.main(Spy.java:481)
So the short of it is that java can't find libzcmjni.so
. Can you paste your $LD_LIBRARY_PATH
here as well? I would guess it does not include /usr/local/lib
I just updated the FAQs section to reflect this question: http://zerocm.github.io/zcm/docs/FAQs.html Let me know if that helps
Yes, that helped, thanks!
Once I compiled the code to run an example publish script and tried to run
zcm-spy
, I saw the following error:But removing
-Xincgc
inzcm-spy.in
works just fine for me. I'm not entirely sure what the option does but it might be a compatibility issue with thedefault-jdk
that installs with Ubuntu 18.04.Also, once
zcm-spy --zcm-url ipc
starts, I see this errorI'm not too sure how to compile with/for JNI. I also don't see the 1Hz publish message of the example from the tutorial in
zcm-spy
.Here's the Java version for a little more context: