/ / Який найкращий спосіб запустити програму Java, яка також має код Scala? - java, scala, jvm

Який найкращий спосіб запустити програму Java, яка також має код Scala? - java, скала, jvm

Скажімо, у вас є команда з 3-х, де є 2 учасникипрацює в Java, а інший член працює в Scala. Чи можна компілювати та запускати цю програму з компілятором Java / JVM або вам потрібно використовувати компілятор Scala / JVM?

Який найкращий спосіб запустити програму, яка має вихідний код Java і Scala? Будь-яка подальша розробка цієї теми буде корисною.

Відповіді:

2 для відповіді № 1

Scala є мовою на основі JVM, тому компілятором Scala єздатні розуміти програми Java, але не навпаки. Отже, якщо програма має як файли Scala, так і Java, компіляція за допомогою компілятора Scala є єдиним варіантом.

Що стосується того, як ці програми повинні бути запущені, виможе збирати результат у JAR, який може бути запущений JVM "звичайним" способом. Якщо ви використовуєте sbt для вашої програми, він має зручний плагін "збірка", який виконує більшу частину роботи за вас.


1 для відповіді № 2

Більшість IDE дозволяють спільно використовувати код Java і Scala. Netbeans і IDEA мають це з коробки. Можливо і затемнення.

Якщо ви хочете працювати на Scala та Java коді окремо, скомпілюйте код Scala до JAR і попросіть хлопців Java використовувати його як зовнішню бібліотеку. Для JVM Scala і Java код не відрізняються.

На хлопцях Java знадобиться вищезгаданий jar plus scala-library.jar у розповсюдженні Scala у Росії SCALA_HOME/lib. Якщо код Scala використовує акторів і т.д., то йому знадобляться додаткові банки Scala, доступні у вищевказаній директорії.

Я роблю це протягом багатьох років. Java-хлопці іноді навіть не знають, що вони написані на Scala.


0 для відповіді № 3

Канонічним способом було б просто використовувати SBT замість Maven. Ви також можете продовжувати використовувати Maven: http://davidb.github.io/scala-maven-plugin/

Див. Також обговорення на http://www.scala-lang.org/old/node/5248.html


0 для відповіді № 4

Для компіляції коду Scala вам знадобиться Scalaкомпілятор, який буде виробляти файли класів, які є сумісними з JVM. Отже, відповідь на перший параграф питання - так. І так, ви можете запустити скомпільований код Scala в JVM, але, оскільки він використовує бібліотеку Scala, вам потрібно надати його в класі.