Non capisco perfettamente cosa sto chiedendo (lol!), beh, nel senso di se è persino possibile, cioè. Se non lo è, mi dispiace.
Supponiamo di avere un programma Java. Ha una classe Main
e una JavaCalculator
. JavaCalculator
ha alcune funzioni di base come
public int sum(int a,int b) {
return a + b
}
Ora supponiamo di avere un file rubino. Chiamato MyProgram.rb
.
MyProgram.rb
può contenere qualsiasi cosa ci si possa aspettare da un programma ruby. Supponiamo che contenga quanto segue:
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
Buona. Ora, potresti già sospettare ciò che voglio fare:
- Voglio eseguire il mio programma Java
- Voglio che esegua il file Ruby
MyProgram.rb
- Quando viene eseguito il programma Ruby, creerà un'istanza di
JavaCalculator
, eseguirà la funzionesum
che ha, ottiene il valore e quindi lo stampa. - Il file ruby è stato eseguito con successo.
- Voglio che esegua il file Ruby
- Il programma Java si chiude.
Nota : il "creare un'istanza di JavaCalculator
" non è interamente necessario. Sarei soddisfatto della semplice esecuzione di una funzione sum
da, ad esempio, la classe Main
.
La mia domanda: è possibile? Posso eseguire un programma Java che esegue internamente un file Ruby che è in grado di comandare il programma Java per fare determinate cose e ottenere risultati? Nell'esempio sopra, il file Ruby chiede al programma Java di fare una somma per esso e dare il risultato.
Può sembrare ridicolo. Sono nuovo in questo genere di cose (se è possibile, cioè).
PERCHÉ MI CHIEDO QUESTO?
Ho un programma Java, che è una specie di motore di gioco. Tuttavia, il mio target di riferimento è un gruppo di programmatori Ruby. Non voglio che imparino Java. Quindi ho pensato che forse il programma Java poteva semplicemente offrire la funzionalità (capacità di creare finestre, visualizzare sprite, riprodurre suoni ...) e quindi, il mio pubblico può semplicemente codificare con Ruby la logica, che fondamentalmente chiede al mio motore Java di fare cose come visualizzare sprite o riprodurre suoni.
Questo è il momento in cui chiedo questo.