Ich verstehe nicht ganz, was ich frage (lol!), Nun, in dem Sinne, ob es überhaupt möglich ist, das heißt. Wenn nicht, tut mir leid.
Angenommen, ich habe ein Java-Programm. Es hat eine Main
und eine JavaCalculator
Klasse. JavaCalculator
hat einige Grundfunktionen wie
public int sum(int a,int b) {
return a + b
}
Angenommen, ich habe eine Ruby-Datei. Angerufen MyProgram.rb
.
MyProgram.rb
kann alles enthalten, was Sie von einem Ruby-Programm erwarten können. Nehmen wir an, es enthält Folgendes:
class RubyMain
def initialize
print "The sum of 5 with 3 is #{sum(5,3)}"
end
def sum(a,b)
# <---------- Something will happen here
end
end
rubyMain = RubyMain.new
Gut. Dann ahnen Sie vielleicht schon, was ich tun möchte:
- Ich möchte mein Java-Programm ausführen
- Ich möchte, dass die Ruby-Datei ausgeführt wird
MyProgram.rb
- Wenn das Ruby-Programm ausgeführt wird, erstellt es eine Instanz von
JavaCalculator
, führt diesum
Funktion aus, ruft den Wert ab und druckt ihn dann aus. - Die Ruby-Datei wurde erfolgreich ausgeführt.
- Ich möchte, dass die Ruby-Datei ausgeführt wird
- Das Java-Programm wird geschlossen.
Hinweis : Das "Erstellen einer Instanz von JavaCalculator
" ist nicht unbedingt erforderlich. Ich würde mich damit zufrieden geben, nur eine sum
Funktion von beispielsweise der Main
Klasse aus auszuführen .
Meine Frage: ist so etwas möglich? Kann ich ein Java-Programm ausführen, das intern eine Ruby-Datei ausführt, die das Java-Programm anweisen kann, bestimmte Dinge zu tun und Ergebnisse zu erzielen? Im obigen Beispiel fordert die Ruby-Datei das Java-Programm auf, eine Summe dafür zu erstellen und das Ergebnis anzugeben.
Das mag lächerlich klingen. Ich bin neu in solchen Dingen (wenn es möglich ist, das heißt).
Warum frage ich das?
Ich habe ein Java-Programm, das eine Art Spiel-Engine ist. Meine Zielgruppe sind jedoch einige Ruby-Codierer. Ich möchte nicht, dass sie Java lernen. Also dachte ich mir, dass das Java-Programm vielleicht einfach die Funktionalität bieten könnte (Fähigkeit, Fenster zu erstellen, Sprites anzuzeigen, Sounds abzuspielen ...), und dann kann mein Publikum einfach mit Ruby die Logik codieren, was im Grunde nur meine Java-Engine verlangt Dinge wie das Anzeigen von Sprites oder das Spielen von Sounds.
Dann habe ich darüber nachgedacht.