Rufen Sie Java von JRuby aus auf

Hintergrund

Weise

(Prämisse) JRuby kann verwendet werden ・ Java kann kompiliert werden

  1. Schreiben Sie Java-Code (nennen wir die Datei "JavaCallTest.java")
  2. Kompilieren Sie "JavaCallTest.java" und bereiten Sie "JavaCallTest.class" vor
  3. Innerhalb von JRuby require'java '; java_import'JavaCallTest'
  4. Rufen Sie entsprechend an

Das Folgende ist ein spezifisches Beispiel.

Java-Code

JavaCallTest.java


public class JavaCallTest{
    public static String str1(){
        return "str1";
    }

    public String str2() {
        return "str2";
    }
}

JRuby-Code

java_call_test.rb


require 'java'
java_import 'JavaCallTest'

p JavaCallTest.str1
begin
  jct1 = JavaCallTest.new
  jct1.str1
rescue => e
  puts e.class
  puts e.message
  puts e.backtrace
end

jct2 = JavaCallTest.new
p jct2.str2
begin
  p JavaCallTest.str2
rescue => e
  puts e.class
  puts e.message
  puts e.backtrace
end

Ergebnis

$ jruby CallJava1.rb 
"str1"
NoMethodError
undefined method `str1' for #<Java::Default::JavaCallTest:0x553a3d88>
Did you mean?  str2
CallJava1.rb:7:in `<main>'
"str2"
NoMethodError
undefined method `str2' for Java::Default::JavaCallTest:Class
Did you mean?  str1
org/jruby/RubyBasicObject.java:1657:in `method_missing'
CallJava1.rb:17:in `<main>'

Kommentar

Es scheint, dass die Namen wie folgt übereinstimmen

Es war schwer, weil meine Kenntnisse in Java 0 waren

Recommended Posts

Rufen Sie Java von JRuby aus auf
Rufen Sie Kotlins versiegelte Klasse von Java aus an
Rufen Sie die Java-API von TensorFlow von Scala aus auf
Implementieren Sie die Java-Schnittstelle in der JRuby-Klasse und rufen Sie sie von Java aus auf
Rufen Sie die Java-Bibliothek von C mit JNI auf
Rufen Sie die GitHub-API über Javas Socket-API Teil2 auf
Rufen Sie Java-Methoden aus JavaScript auf, das in Java ausgeführt wird
[Android] Rufen Sie Kotlins Standardargumentmethode von Java aus auf
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
Java-Methodenaufruf von RPG (Methodenaufruf in eigener Klasse)
Eval Java-Quelle von Java
Greifen Sie über Java auf API.AI zu
Von Java zu Ruby !!
Verwenden Sie TensorFlow von JRuby
JAVA-Konstruktoraufrufverarbeitung
Rufen Sie eine Methode mit Kotlins Rückrufblock von Java aus auf
Rufen Sie ein in Swift geschriebenes Programm von Processing (Java) auf.
Migration von Cobol nach JAVA
Java ab Anfänger überschreiben
Elastic Search Indexerstellung aus Java
Neue Funktionen von Java7 bis Java8
Stellen Sie eine Verbindung von Java zu PostgreSQL her
Java, Instanz für Anfänger
Java ab Anfänger, Vererbung
Java-Leben von vorne anfangen
Verwenden von Docker von Java Gradle
Von ineffektivem Java zu effektivem Java
JavaScript von Java aus gesehen
Führen Sie Nicht-Java-Anweisungen von Java aus
[Kotlin] Holen Sie sich Java Constructor / Method von KFunction und rufen Sie es auf
Rufen Sie Chain from Chain in Spring Integration auf
Java, abstrakte Klasse für Anfänger
Code Java von Emacs mit Eclim
Deep Learning Java von Grund auf 6.4 Regularisierung
Land von IP-Adresse abrufen (Java)
Führen Sie node.js von Android Java aus (Verarbeitung)
Führen Sie eine Batchdatei von Java aus
[Java] Entfernen Sie Leerzeichen in Zeichenfolgen
Akka praktische Vorbereitungsprozedur aus Java
Greifen Sie über eine Java-Anwendung auf Teradata zu
Verwenden Sie Chrome Headless von Selenium / Java
Java soll ab heute dabei sein
Java
Von Java zu VB.NET-Writing Kontrastmemo-
Java, Überlastungskonstruktor ab Anfänger
Arbeiten Sie mit Google-Tabellen aus Java
Java, Schnittstelle für Anfänger
Java
Der Weg von JavaScript nach Java
Wiedereinführung von Java8, das seit Android Studio 2.4 verfügbar ist
[Java] Konvertierung von Array zu Liste
Rufen Sie C-Sprachfunktionen von Swift aus auf
Beispielcode mit Minio aus Java
Rufen Sie Spring Management Bean von Pojo
Rufen Sie die Super-Methode in Java auf
[Android / Java] Lassen Sie das Host-Fragment (Anrufer) das Ereignis von DialogFragment zurückrufen
Rufen Sie die Microsoft Emotion API auf, indem Sie Bilddaten direkt von Java senden.
Lernen Sie Deep Learning von Grund auf in Java.