我能够让所有三个在“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项目”无法运行。显然这不是一个重要的项目,但我想更好地理解它是如何工作的。
答案 0 :(得分:3)
在Scala项目中使用Java代码应该没有问题。您必须无意中声明了从scala项目到Java项目的依赖项,但是没有更多信息,我无法分辨。
请附上您的scala项目的.classpath和.project文件。
答案 1 :(得分:2)
我最终在第一周内纠正了问题。这涉及依赖性问题。我建立了一个新项目并且有效。这个问题暂时没有用,直到om-nom-nom为答案提供+50。如果有人觉得仍然需要答案,我很抱歉。为了让这个答案足智多谋,我在http://shaneofalltrades.com/java.html创建了一个博客,详细介绍了完整设置。这是该教程的副本......
如果您已经拥有Eclipse,那么您应该能够使用该版本,或者按照这些步骤安装另一个Eclipse以保持此环境的独立性。
现在我们将从Scala中休息并下载JRuby。如果您不想要Ruby,可以跳过此步骤,或者您可以将此作为将Javauby添加到Java项目的唯一步骤。
这应该涵盖Java,Scala和Ruby的Hello World的所有内容。如果您有任何问题,请询问,我将很乐意为您提供帮助。
答案 2 :(得分:2)
---编辑这个答案是死路一条。 ---
我要离开这个,所以其他人不要试图走这条路。也就是说,它不值得更多的投票(但不要将其投票遗忘)
Facets概念是正确的概念,但此时Eclipse不支持Web开发之外的核心IDE组件,以补充Facets。
---原帖如下---
将项目转换(或创建)为facets项目。使用facet,您可以添加(或删除)默认项目性质的各个方面。在您的情况下,我猜您会想要将JRuby,Scala(和其他)添加到标准Java项目中。
---请求后的附加信息---
基本上,您打开项目属性,然后从左侧选择“项目构面”,并选择“将项目转换为构面”。这样做将“解开”“项目性质”的各个方面,并允许您添加和删除单个项目插件。使用这些技术,您可以在Scala / JRuby / etc中添加其他帮助程序。
我主要是为了调整堆栈的Web服务端,所以你的里程可能会有所不同。但是,如果它不像宣传的那样工作,这是添加此类功能的正确方法,所以不要对发布错误感到害羞。