के भीतर जावा क्लास का उपयोग करने में समस्या मैं jruby के भीतर से Java Opencl का उपयोग करने की कोशिश कर रहा हूं, लेकिन मुझे ऐसी समस्या का सामना करना पड़ रहा है जिसे मैं हल नहीं कर सकता, यहां तक कि Google खोज के साथ भी।jruby
require 'java'
require 'JOCL-0.1.7.jar'
platforms = org.jocl.cl_platform_id.new
puts platforms.class
org.jocl.CL.clGetPlatformIDs(1, platforms, nil)
जब मैं इस कोड का उपयोग चलाएँ: JRuby test.rb मैं निम्न त्रुटि, जब अंतिम पंक्ति uncommented है:
#<Class:0x10191777e>
TypeError: cannot convert instance of class org.jruby.java.proxies.ConcreteJavaP
roxy to class [Lorg.jocl.cl_platform_id;
LukeTest at test.rb:29
(root) at test.rb:4
बस सोच किसी को कैसे हल करने के लिए पर एक विचार है कि क्या यह समस्या?
संपादित करें: ठीक तो मुझे लगता है मैं प्लेटफार्मों एक सरणी बनाने के द्वारा इस समस्या का पहला हिस्सा हल किया है:
platforms = org.jocl.cl_platform_id[1].new
लेकिन जब लाइनों अगले कुछ भी कहा कि इस त्रुटि को जन्म दिया:
context_properties = org.jocl.cl_context_properties.new()
context_properties.addProperty(org.jocl.CL::CL_CONTEXT_PLATFORM, platforms[0])
CodegenUtils.java:98:in `human': java.lang.NullPointerException
from CodegenUtils.java:152:in `prettyParams'
from CallableSelector.java:462:in `argumentError'
from CallableSelector.java:436:in `argTypesDoNotMatch'
from RubyToJavaInvoker.java:248:in `findCallableArityTwo'
from InstanceMethodInvoker.java:66:in `call'
from CachingCallSite.java:332:in `cacheAndCall'
from CachingCallSite.java:203:in `call'
from test.rb:36:in `module__0$RUBY$LukeTest'
from test.rb:-1:in `module__0$RUBY$LukeTest'
from test.rb:4:in `__file__'
from test.rb:-1:in `load'
from Ruby.java:679:in `runScript'
from Ruby.java:672:in `runScript'
from Ruby.java:579:in `runNormally'
from Ruby.java:428:in `runFromMain'
from Main.java:278:in `doRunFromMain'
from Main.java:198:in `internalRun'
from Main.java:164:in `run'
from Main.java:148:in `run'
from Main.java:128:in `main'
किसी कारण जब मैं प्लेटफार्मों [0] यह NilClass रूप में सूचीबद्ध है के वर्ग प्रिंट के लिए
!?