如何在Eclipse中为Java,Scala和JRuby打开一个项目?

时间:2012-01-22 20:40:35

标签: java eclipse scala jar jruby

我能够让所有三个在“Scala项目”中运行Hello World,并以.java文件为主。问题是它是从我没有使用的“Java项目”中提取的,尽管我的“Scala项目”中有JRE系统库。以下是我正在做的有助于理解的代码...

JRuby.java

import org.jruby.embed.ScriptingContainer;
public class JRuby {                                              

    public static void main(String[] args) 
    {                     
        System.out.println("Java, Scala and Ruby using the JRE.\n"); 

        ScriptingContainer container = new ScriptingContainer(); 
        container.runScriptlet("puts 'This is JRuby code in .java file!'");

        new ScallaHello().hello(); 

        System.out.println("This is standard Java Code in .java file!"); 
    }
}

ScallaHello.scala

class ScallaHello {

    def hello() { 
        println("This is a Scala Method in .scala file, object set in .java file")
    }

    System.out.println("This is Java Code in .scala file!")
    println("This is Scalla Code in .scala file!")
}

最终结果是......

Java, Scala and Ruby using the JRE.

This is JRuby code in .java file!
This is Java Code in .scala file!
This is Scalla Code in .scala file!
This is a Scala Method in .scala file, object set in .java file
This is standard Java Code in .java file!

我将jars组织为Scub Library,JRE Library和JRuby Jar的参考库。我也不想使用“Java项目”中的相同内容。如果我关闭该项目,则此项目“Scala项目”无法运行。显然这不是一个重要的项目,但我想更好地理解它是如何工作的。

3 个答案:

答案 0 :(得分:3)

在Scala项目中使用Java代码应该没有问题。您必须无意中声明了从scala项目到Java项目的依赖项,但是没有更多信息,我无法分辨。

请附上您的scala项目的.classpath和.project文件。

答案 1 :(得分:2)

我最终在第一周内纠正了问题。这涉及依赖性问题。我建立了一个新项目并且有效。这个问题暂时没有用,直到om-nom-nom为答案提供+50。如果有人觉得仍然需要答案,我很抱歉。为了让这个答案足智多谋,我在http://shaneofalltrades.com/java.html创建了一个博客,详细介绍了完整设置。这是该教程的副本......

如果您已经拥有Eclipse,那么您应该能够使用该版本,或者按照这些步骤安装另一个Eclipse以保持此环境的独立性。

  1. 从>> http://www.eclipse.org/downloads/下载Eclipse 3.7 Indigo,并为Java Developers选择Eclipse IDE。解压缩在一个易于查找的文件夹中。如果不熟悉Eclipse,它不会自动加载到您的程序文件中。我把我放在一个文件夹中。解压缩后即可完全运行。如果您更方便,可以将特殊文件固定到任务栏。
  2. 在>> http://www.scala-lang.org/downloads下载Eclipse的scala-2.9.1.final.zip文件。按照说明操作。在此安装时,它涉及将下载页面/链接粘贴到Eclipse中“帮助”选项卡下的Eclipse“安装新软件”部分。
  3. 粘贴链接并命名保存的位置后,您应该会看到这些项目...... 确保展开这些并查看所有框,选择“全选”,然后选择“下一步”>,选择“下一步”>再次安装。接受条款并选择完成。确保您查看需要选择的条款,并查看所有选定的窗口。我遇到了一个下载问题,直到我仔细检查了复选框和“接受条款”。一切正常安装后,应重新启动或要求重新启动。 现在应该安装Eclipse和Scala,但仍需要配置它才能正常工作。
  4. Eclipse重新启动后,它应该询问您是否要检查插件设置是否正确,选择是。
  5. 应启用JDT编织。选择推荐的默认设置并选择确定。
  6. 现在您应该能够选择新项目文件>>新建>项目...然后选择Scala向导>> Scala项目。为项目命名,然后选择下一个。
  7. 现在我们将从Scala中休息并下载JRuby。如果您不想要Ruby,可以跳过此步骤,或者您可以将此作为将Javauby添加到Java项目的唯一步骤。

    下载JRuby

    1. 转到http://jruby.org/download并下载JRuby 1.6.6 Complete .jar
    2. 将文件放在您将记住的位置,因为您必须在几步后从Eclipse中访问它。
    3. 在Package Explorer中右键单击您的Scala包...
    4. 选择Build Path,然后选择Add External Archives ...找到刚下载的JRuby jar(在此步骤之前放入一个安全文件夹中)并选择它。 Eclipse会将其与您的其他库一起加载到您的项目中。可能有更好的方法将此包含在JRE系统库中,这将消除此步骤。
    5. 返回在Eclipse中配置项目......

      1. 在Package Explorer中再次右键单击Scala Package,然后选择Build Path,然后选择Configure Build Path ....转到“订购和导出”选项卡,选中“标记所有库”,然后选择“确定”。
      2. 构建项目的时间:右键单击Scala Package>> New>> Other ...
      3. Java>>类,选择下一步
      4. 将其命名为JRuby并选中此框并选择Finish ...
      5. 接下来创建一个Scala类:右键单击Scala包>>新>> Scala类
      6. 将其命名为ScallaHello,选择Finish。
      7. 粘贴上面的代码并运行!
      8. 如果它询问您是否要配置类路径,请选择是。
      9. 这应该涵盖Java,Scala和Ruby的Hello World的所有内容。如果您有任何问题,请询问,我将很乐意为您提供帮助。

答案 2 :(得分:2)

---编辑这个答案是死路一条。 ---

我要离开这个,所以其他人不要试图走这条路。也就是说,它不值得更多的投票(但不要将其投票遗忘)

Facets概念是正确的概念,但此时Eclipse不支持Web开发之外的核心IDE组件,以补充Facets。

---原帖如下---

将项目转换(或创建)为facets项目。使用facet,您可以添加(或删除)默认项目性质的各个方面。在您的情况下,我猜您会想要将JRuby,Scala(和其他)添加到标准Java项目中。

---请求后的附加信息---

enter image description here 基本上,您打开项目属性,然后从左侧选择“项目构面”,并选择“将项目转换为构面”。这样做将“解开”“项目性质”的各个方面,并允许您添加和删除单个项目插件。使用这些技术,您可以在Scala / JRuby / etc中添加其他帮助程序。

我主要是为了调整堆栈的Web服务端,所以你的里程可能会有所不同。但是,如果它不像宣传的那样工作,这是添加此类功能的正确方法,所以不要对发布错误感到害羞。