Чтобы понять, что написал @Kumar Basapuram:
Создайте класс Java с именем "Wrapper.java".
package animals;
public class Wrapper {
public static void main(String[] args) {
SampleApp app=new SampleApp();
app.main(args);
}
}
Свяжите этот основной метод с основным методом в "SampleApp.scala "class.
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)
}
}
Проект с классами Java и Scala Изображение
Щелкните правой кнопкой мыши проект ScalaPracticeCreation.Нажмите кнопку «Экспорт ...». Выберите «Запускаемый файл JAR» в папке Java Экспорт класса Scala в jar-файл. Исполняемый файл
Нажмите «Далее»>
Выбрать оболочку - ScalaPracticeCreations
Выберите Экспорт места назначения в место на вашем компьютере
Выберите «Извлечь необходимые библиотеки в сгенерированный JAR» под опцией «Обработка библиотеки:»
Нажмите Готово
Запуститефайл через IDE Eclipse, и он работает.
Запустите его через командную строку, и он не работает. Изображение командной строки
Чтобы исправить это, удалите методы println из "SampleApp.scala".
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()
}
}
add "System.out.println (app.main(арг));»заменить "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));
}
}
Теперь переэкспортируйте программу после запуска. успех в командной строке Изображение
Теперь это работает.
Вот дополнительные классы заполнителя .scala.Обратите внимание, что класс Demo.scala не имеет значения.
Weight.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 .