【问题标题】:How do you open a single project for Java, Scala and JRuby in Eclipse?如何在 Eclipse 中为 Java、Scala 和 JRuby 打开单个项目?
【发布时间】:2012-02-16 09:09:48
【问题描述】:

我能够让所有三个在“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 组织为 JRuby Jar 的 Scala 库、JRE 库和引用库。我不想使用的“Java 项目”中也有相同的内容。如果我关闭该项目,该项目“Scala Project”将无法运行。显然这不是一个重要的项目,但我想更好地了解它是如何工作的。

【问题讨论】:

  • 好的,我已经让它在一个项目中工作,但仍在试图弄清楚路径是如何工作的。显然是相同的代码,但现在正在尝试优化。
  • 一些明显的问题:您在 Scala 项目中的某个时间点是否依赖于另一个项目?如果是这样,您是否尝试过清洁?
  • 运行失败是什么意思?你遇到了什么错误?另外,如果你取得了进展,你能否编辑问题并解释你做了什么以及你当前的问题是什么?
  • @EdStaub 看答案,我已经详细说明了这个项目。
  • @anothem 看答案,我已经详细说明了这个项目。

标签: java eclipse scala jar jruby


【解决方案1】:

在 Scala 项目中使用 Java 代码应该没有问题。您一定是无意中声明了从 scala 项目到 Java 项目的依赖关系,但没有更多信息,我无法判断。

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

【讨论】:

  • 正是这样,我已经包含了关于这个项目的更详细的教程,并为此在另一台计算机上复制了我的构建。一切正常。
【解决方案2】:

--- 编辑为这个答案是死胡同。 ---

我将发布此帖子,以免其他人尝试走这条路。也就是说,它不值得再投赞成票(但也不要将其投反对票)

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

--- 原帖如下---

将项目转换(或创建)为构面项目。使用构面,您可以添加(或删除)默认项目性质的方面。在您的情况下,我猜您可能希望将 JRuby、Scala(和其他)添加到标准 Java 项目中。

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

基本上,您打开项目属性,然后从左侧选择“项目构面”,然后选择“将项目转换为构面形式”。这样做将“解绑”您的“项目性质”的各个方面,并允许您添加和删除单个项目插件。使用这些技术,您也许可以在您的 Scala / JRuby / 等中添加额外的助手。

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

【讨论】:

  • 我没有听说过这个,但听起来它可能是一个比使用 Java 类/main 创建 Scala 项目来启动项目更好的选择。您能否详细说明这是什么以及它的优点?
  • 已编辑以更好地说明 Eclipse 的构面配置。
  • 很遗憾,此解决方案不起作用。分面项目是 WTP 的一部分,与各种语言 IDE 没有任何关系。因此,在您的项目中添加 Scala 或 JRuby 特性是没有意义的(甚至不可能)。
  • @AndrewEisenberg 很抱歉听到这个消息,这太糟糕了。希望他们有一天能将 Facets 概念扩展到常规语言 IDE。
  • @Shane 如果 Eclipse 曾经将项目定义的 Facets 方法扩展到 IDE 空间(目前它只支持 Web 应用程序),那么可以混合和匹配主线 Eclipse 项目的部分。跨度>
【解决方案3】:

我最终在第一周内就解决了这个问题。这涉及依赖问题。我建立了一个新项目并且它有效。这个问题有一段时间不活跃,直到 om-nom-nom 提供 +50 的答案。如果有人觉得仍然需要答案,我很抱歉。为了让这个答案对其他人有用,我在http://shaneofalltrades.com/java.html 开设了一个博客,其中包含有关完整设置的详细信息。这是该教程的副本...

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

  1. 从 >>http://www.eclipse.org/downloads/ 下载 Eclipse 3.7 Indigo 并选择 Eclipse IDE for Java Developers。解压到一个容易找到的文件夹。如果不熟悉 Eclipse,它不会自动加载到您的程序文件中。我把我的放在一个文件夹中。解压后就可以正常使用了。如果对您来说更容易,您可以将特殊文件固定到任务栏。
  2. 在 >>http://www.scala-lang.org/downloads 下载 Eclipse 的 scala-2.9.1.final.zip 文件 按照说明进行操作。在进行此安装时,需要将下载页面/链接粘贴到 Eclipse 中“帮助”选项卡下的 Eclipse“安装新软件”部分。
  3. 粘贴链接并命名您保存的位置后,您应该会看到这些项目... 确保展开这些并查看所有框,选择“全选”,然后选择“下一步”>,再次选择“下一步”> 进行安装。接受条款并选择完成。确保您浏览了需要选择的术语并查看所有窗口都被选中。在我更彻底地检查复选框和“接受条款”之前,我遇到了下载问题。一旦一切安装正确,它应该重新启动或要求重新启动。 现在应该安装 Eclipse 和 Scala,但仍需要对其进行配置才能正常工作。
  4. Eclipse重启后会询问是否要检查插件设置是否正确,选择yes。
  5. 应启用 JDT 编织。选择推荐的默认设置并选择确定。
  6. 现在您应该能够选择新项目 File>>New>Project... 然后选择 Scala Wizard>>Scala Project。命名您的项目,然后选择下一步。

现在我们要从 Scala 中休息一下,下载 JRuby。如果您不需要 Ruby,可以跳过此步骤,或者您可以使用此步骤将 JRuby 添加到 Java 项目中。

下载 JRuby

​​>
  1. 转到http://jruby.org/download并下载JRuby 1.6.6 Complete .jar
  2. 将文件放在您会记住的位置,因为从现在开始,您将不得不在 Eclipse 中通过几个步骤访问它。
  3. 在包资源管理器中右键单击您的 Scala 包...
  4. 选择 Build Path,然后选择 Add External Archives... 找到您刚刚下载的 JRuby jar(在此步骤之前放置在安全文件夹中)并选择它。 Eclipse 会将它与您的其他库一起加载到您的项目中。可能还有一种更好的方法可以将其包含在 JRE 系统库中,从而消除此步骤。

回到在 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. 将其命名为 ScalaHello,选择 Finish。
  7. 粘贴上面的代码并运行!
  8. 如果它询问您是否要配置类路径,请选择是。

这应该涵盖 Java、Scala 和 Ruby 的 Hello World 的所有内容。如果您有任何问题,请询问,我很乐意为您提供帮助。

【讨论】:

  • 我只是认为如果其他人偶然发现同样的问题,得到准确的答案会更好
  • @om-nom-nom 我不认为这是一件坏事,我只是有几个问题要求更多解释,并希望他们知道我并没有自己寻求答案。无论哪种方式,我都在我的整个过程中添加了我的答案详细信息,希望这将涵盖许多问题并帮助那些希望开始的人。
  • 我们能否假设在 JetBrains 和 NetBeans 等其他 IDE 中同样的事情应该是可能的(并且相当容易)?
猜你喜欢
  • 1970-01-01
  • 2011-01-10
  • 2014-05-09
  • 2016-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-25
相关资源
最近更新 更多