Bir çözüm: Sonra bir işlev/sınıfa girdi olarak Python/Jython bunu nasıl kullanabileceğinizi aşağıda sınıfı, önüne alındığında. Serileştirmek/serpiştirmek için bir çeşit mesaj sistemini, kuyruğu veya aracıyı kullanabilir veya python ile java arasındaki mesajları iletebilirsiniz. Daha sonra python veya java'da işlenecek sıralara iş vermek için bazı işçiler/yapımcı/tüketiciler oluşturun.
py4j pyspark ve Hadoop türü şeyler için tarafından/yoğun olarak kullanılır.
Sorunuzu daha çabuk yanıtlamak için. .
import org.apache.commons.io.FileUtils;
import org.json.simple.JSONObject;
//import org.json.simple.JSONObject;
public class TestObject
{
private double[] values;
private int length;
private int anotherVariable;
private boolean someBool;
private String someString;
//getters, setters
public String toJSON() {
JSONObject obj=new JSONObject();
obj.put("values",new Double(this.values));
obj.put("length",new Integer(this.length));
obj.put("bool_val",new Boolean(this.SomeBool));
obj.put("string_key",this.someString);
StringWriter out = new StringWriter();
obj.writeJSONString(out);
return out.toString();
}
public void writeObject(){
Writer writer = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("anObject.json"), "utf-8")
)
)
writer.write(this.toJSON());
}
public static void setObject(){
values = 100.134;
length = 12;
anotherVariable = 15;
someString = "spam";
}
}
Ve Python:
Örnek json-simple kullanılarak
class DoStuffWithObject(object):
def __init__(self,obj):
self.obj = obj
self.changeObj()
self.writeObj()
def changeObj(self):
self.obj['values'] = 100.134;
self.obj['length'] = 12;
self.obj['anotherVariable'] = 15;
self.obj['someString'] = "spam";
def writeObj(self):
''' write back to file '''
with open('anObject.json', 'w') as f:
json.dump(self.obj, f)
def someOtherMethod(self, s):
''' do something else '''
print('hello {}'.format(s))
import json
with open('anObject.json','r') as f:
obj = json.loads(f.read())
# print out obj['values'] obj['someBool'] ...
for key in obj:
print(key, obj[key])
aThing = DoStuffWithObject(obj)
aThing.someOtherMethod('there')
Sonra java nesneyi geri okuyun. Bu fikri hayata geçiren çözümler var (JSON-RPC, XML-RPC ve türevleri). Buna bağlı olarak, mongo'nun jsonu olduğu gibi (http://docs.mongodb.org/ecosystem/drivers/java/) bir yararı kullanmayı düşünebilirsiniz.
Bkz:
daha kapsamlı bir liste:
Kaynaklar başvurulan:
:
o ayrıntıları sahip olacak bu bağlantıyı bakın. Yaptığım şey, çalıştırılabilir (exe) bir python kodu oluşturdum ve java programımdan parametrelerim değerini geçtim. Bu sizin için uygunsa o zaman yardımcı olurum. Lütfen cevap verin!! – Santhucool
olabilir, paylaşmak için bir örnek var mı? – user1584120
Cevaplandı Lütfen kontrol edin – Santhucool