以@Kumar Basapuram 所写的内容为基础:
创建一个名为“Wrapper.java”的 java 类。
package animals;
public class Wrapper {
public static void main(String[] args) {
SampleApp app=new SampleApp();
app.main(args);
}
}
将此主方法链接到“SampleApp.scala”类中的主方法。
package animals
class SampleApp {
def main(args: Array[String]){
var c = new Cow("Bessie", 100)
println(c.speak)
var h = new Horse("CJ", 50)
println(h.speak)
var s = new Sheep("Little Lamb", 25)
println(s.speak)
println(s.weigh)
println(h.weigh)
println(c.weigh)
}
}
Project with Java and Scala Classes Picture
右键单击项目 ScalaPracticeCreation。
点击导出...
单击 Java 文件夹下的 Runnable JAR 文件
Exporting Scala Class into a jar Executable Picture
点击下一步>
选择包装器 - ScalaPracticeCreations
选择导出目的地到您计算机上的某个位置
在“Library”下选择“Extract required libraries into generated JAR”
处理:"选项
点击完成
通过 Eclipse IDE 运行该文件,它就可以工作了。
通过命令提示符运行它,它不起作用。
Command Prompt Picture
要解决此问题,请从“SampleApp.scala”中删除 println 方法。
package animals
class SampleApp {
def main(args: Array[String]) {
var c = new Cow("Bessie", 100)
var h = new Horse("CJ", 50)
var s = new Sheep("Little Lamb", 25)
c.weigh().toString()
}
}
添加“System.out.println(app.main(args));”替换“app.main(args);”在 Wrapper.java 类中
package animals;
public class Wrapper {
public static void main(String[] args) {
SampleApp app=new SampleApp();
System.out.println(app.main(args));
}
}
现在在运行程序后重新导出程序。
success in the command prompt Picture
现在可以了。
这里是额外的填充 .scala 类。请注意,Demo.scala 类是无关紧要的。
重量.scala:
package animals
abstract class Weight(size: Int) {
def weigh = "My size is " + size
}
Animal.scala:
package animals
abstract class Animal(name: String, weight: Int) extends Weight(weight){
def speak = name + " says " + sound
def sound: String
override def weigh() = "My name is " + name + " and I weigh: " + weight
}
Cow.scala:
package animals
class Cow (name: String, weight: Int) extends Animal(name,weight){
override def sound() = "mooooo"
}
Horse.scala:
package animals
class Horse (name: String, weight: Int) extends Animal(name,weight){
override def sound() = "neigh"
}
Sheep.scala:
package animals
class Sheep (name: String, weight: Int) extends Animal(name,weight) {
override def sound() = "baaaa"
}
请注意,尽管它是一种功能性解决方案,但它可能不是最佳解决方案。 Scala sbt 可能是一个更好的解决方案:Scala sbt 或这个Scala sbt-assembly。