Domanda

Ho appena iniziato con JRuby on Rails e assolutamente lo amo. So come utilizzare le classi attuali all'interno della API Java nella mia applicazione Rails, ma se volevo creare una nuova classe personalizzata scritta in puro codice Java, come vorrei essere in grado di usarlo nella mia applicazione Rails?

Per esempio, diciamo che ho creato Dog.java:

class Dog {
  private String name;

  public Dog() {
    name = "Fido";
  }

  public String getName() {
    return name;
  }
}

Come sarei stato in grado di creare un nuovo oggetto Dog (Dog.new) nel mio Rails app? Ho bisogno di mettere il file da qualche parte o Dog.java Dog.class, e quindi chiamare qualche forma di "import" per importare nel mio Rails app. Non ho idea di dove questo dovrebbe andare nella struttura di directory né so dove e come devo dire la mia app come includere esso.

È stato utile?

Soluzione

Avrete bisogno di un paio di cose.

  1. compilare la classe.

    mkdir classes
    javac -d classes src/Dog.java
    
  2. Aggiungi classes al classpath nella vostra applicazione Rails (un inizializzatore per esempio).

    require 'java'
    $CLASSPATH << File.join(Rails.root, "classes")
    
  3. Importa la classe.

    java_import Java::Dog
    

Se si vuole fare un file WAR del vostro Rails app con verdognola, si potrebbe anche aggiungere la directory classes al file di guerra utilizzando l'opzione config.dirs in config/warble.rb, e la classe cane sarà a disposizione senza dover aggiungere a $CLASSPATH perché della convenzione Java che wEB-INF / classes essere aggiunte al classpath in un'applicazione web Java.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top