2010-10-12 9 views
6

मैंने अभी रेल पर जेआरबी के साथ शुरुआत की और बिल्कुल इसे प्यार किया। मुझे पता है कि मेरे रेल ऐप में जावा एपीआई के भीतर मौजूदा कक्षाओं का उपयोग कैसे किया जाए, लेकिन अगर मैं पूरी तरह से जावा कोड में लिखी गई एक नई कस्टम क्लास बनाना चाहता हूं, तो मैं इसे अपने रेल ऐप में कैसे उपयोग कर पाऊंगा?रेल पर JRuby: अपने रेल ऐप में कस्टम जावा कक्षाओं का उपयोग

class Dog { 
    private String name; 

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

    public String getName() { 
    return name; 
    } 
} 

मैं अपने रेल app में एक नया कुत्ता वस्तु (Dog.new) बनाने में सक्षम हो जाएगा:

उदाहरण के लिए, मान लीजिए कि मैं Dog.java बनाया है? मुझे कहीं भी Dog.java या Dog.class फ़ाइल डालने की ज़रूरत है, और फिर इसे मेरे आयात ऐप में आयात करने के लिए "आयात" के कुछ रूपों को कॉल करें। मुझे नहीं पता कि यह निर्देशिका संरचना में कहां जाना चाहिए और न ही मुझे पता है कि मुझे अपने ऐप को कहां और कैसे शामिल करना चाहिए।

उत्तर

12

आपको कुछ चीजों की आवश्यकता होगी।

  1. कक्षा संकलित करें।

    mkdir classes 
    javac -d classes src/Dog.java 
    
  2. अपने रेल आवेदन (उदाहरण के लिए एक प्रारंभकर्ता) में classpath को classes जोड़ें।

    require 'java' 
    $CLASSPATH << File.join(Rails.root, "classes") 
    
  3. कक्षा आयात करें।

    java_import Java::Dog 
    

आप वार्बलर के साथ अपने रेल एप्लिकेशन का एक युद्ध फ़ाइल बनाना चाहते हैं, तो आप भी classes निर्देशिका युद्ध फाइल करने के लिए config/warble.rb में config.dirs विकल्प का उपयोग कर जोड़ सकते हैं, और कुत्ते वर्ग उपलब्ध हो जाएगा जावा सम्मेलन के कारण $CLASSPATH में जोड़ने के बिना वेब वेब अनुप्रयोग में क्लासपाथ में WEB-INF/कक्षाओं को जोड़ा जाना चाहिए।

+0

उत्कृष्ट! आपने मेरा दिन बना लिया है, निक। धन्यवाद! –

संबंधित मुद्दे