我对scala有很多疑问。我做了一些阅读和谷歌搜索和SO'ing,没有找到任何可靠的答案。我还没有进入实验/原型设计阶段,所以我想我也可以问我的问题并获得一些专家知识供大家分享。提前谢谢!
scala.exe到底是什么用的?有人能说一下scala.exe与java.exe的不同之处吗?除了提供解释器shell之外,scala.exe中是否存在运行时黑魔法?
( UPDATE :没有scala.exe这样的东西.Scala附带了一个简单的批处理脚本启动器,scala.bat(或* nix上的scala)。 Scala运行时是java.exe ,在CLASSPATH中使用Scala的标准库jar。)
如果我使用java.exe启动进程,是否可以将scala代码链接到现有的java程序?如果是这样,我的CLASSPATH是否需要更改为scala标准库jar中的链接?此外,如果我使用java.exe启动,是否需要在scala代码中链接任何新的-javaagent参数?有没有办法在我现有的Web应用程序.war文件(或WEB-INF / classes)中的jar中包含scala代码并让它运行?
相反,如果我的Java EE应用服务器启动器中需要scala.exe来执行scala + java代码,scala.exe可以采用我所有的深奥-XX:InsertYourCrazySunPerfSwitchHere JVM命令行参数吗?
最后,是将新的Scala代码合并到现有的Spring Framework + JSF2 Web应用程序中,例如试图将圆形挂钩插入方孔中?我看到了为Scala设计的很长的Web框架列表,但是我想知道Scala在使用像JSF2这样的商品工具时会有多顺畅或多么尴尬。这些基于Scala的Web框架是非Java开发人员的副产品迁移到Scala社区并希望在Scala语言中重新创建他们的框架吗?或者,JSF2的设计方式是否存在一些内在的东西,一旦我成为Scala的专家,我会发现混合这两者是一个草率的混乱,我浪费了我的时间?
答案 0 :(得分:4)
你问了很多问题。我将尝试一次解决所有问题。
<强>问题:强>
scala.exe到底是什么用的?有人可以说明什么 scala.exe与java.exe有什么不同?是否有运行时黑魔法 在scala.exe中,而不是提供解释器shell?
scala.bat可以根据参数做几件事:
启动二进制文件时,scala.bat只需调用java.exe,并将scala-library.jar添加到类路径中。没有任何魔法。
<强>问题:强>
如果我启动了,我可以将scala代码链接到现有的java程序 用java.exe进程?如果是这样,我的CLASSPATH是否需要更改为链接 在scala标准库jar中?如果我正在推出 java.exe,是scala中链接所需的任何新的-javaagent参数 码?
所有Scala二进制文件都是简单的jar。唯一的区别是它们需要scala运行时库(scala-library.jar)。因此,当使用java.exe启动时,您只需按照启动带有依赖项的jar时的步骤操作即可。同样,没有魔法,没有额外的开关。
<强>问题:强>
有没有办法在我现有网站的jar中包含scala代码 应用程序.war文件(或在WEB-INF / classes中)并让它运行?
Scala jar就像java jar一样,所以你可以这样对待它们。
<强>问题:强>
最后,将新的Scala代码合并到现有的Spring中 Framework + JSF2 Web应用程序就像试图将一个圆形挂钩装入一个 方孔?我看到了为Scala设计的很长的Web框架列表 那是可用的,但我想知道Scala有多顺利或多么尴尬 会玩JSF2等商品工具。这些是基于Scala的吗? Web框架非Java开发人员的副产品迁移到 Scala社区,并希望重新创建他们的框架 Scala语言?或者,JSF2的存在方式是什么? 设计成这样,一旦我成为Scala的专家,我就会看到它 试图将两者混合在一起的草率混乱,我浪费了我的时间?
使用Scala中的Java库至少和使用Java中的Java一样简单,而且通常更顺畅。另一方面,Scala比Java更丰富。所以当你开始习惯Scala时,你会觉得缺少Java库。