2015-10-01 2 views
0

Я изучаю разработку проекта в IntelliJ.Проект SBT с модулем Java в IntelliJ

Я начал новый проект SBT. Теперь у меня есть два файла: один - скрипт Scala projectName/src/main/scala/scalaScript.scala, а второй класс Java projectName/src/main/java/moduleName/MyClass.java

Сканер Scala используется для проверки строк строк в консоли Scala. В противном случае для проверки класса I, определенного в MyClass.java, я думаю, что мне нужно сначала скомпилировать его, а затем import moduleName.MyClass в сценарии Scala. После этого я могу использовать класс java для создания объектов и делать все, что захочу.

Если я не использую IntelliJ, мне просто нужно перейти в каталог модуля java и вызвать javac -cf myJavaLibrary.jar MyClass.java, чтобы создать банку. Затем переместите myJavaLibrary.jar в тот же каталог, что и мой файл сценария Scala.

Как эффективно сделать это в IntelliJ? Каков рабочий трубопровод?

Update 1

Я перешел на использование Scala листа. Однако после import moduleName.MyClass возникает ошибка, указывающая, что модуль не найден.

import bestbuy.Laptop 

где bestbuy это имя модуля, а Laptop класс. Затем сообщение говорит:

Error:not found: value bestbuy 
import bestbuy.Laptop 
    ^
Error:(6, 10) not found: value bestbuy 
;import bestbuy.Laptop 
     ^
Error:(18, 50) not found: value bestbuy 
println(MacroPrinter211.printImportInfo({import bestbuy.Laptop;})) 
               ^
Error:(26, 50) not found: value bestbuy 
println(MacroPrinter211.printImportInfo({import bestbuy.Laptop;})) 
               ^

Update 2

На листе, вы должны проверить коробочку перед «Сделать проект», так что весь исходный код будет компилироваться и байт-код будет сохранен в целевом каталоге, где ожидает SBT. Затем я могу успешно выполнить import bestbuy.Laptop на листе.

Однако, я все еще ожидаю ответа на свой первоначальный вопрос. Если я могу import bestbuy.Laptop в файле сценария Scala вместо рабочего листа. На листе все коды выполняются сразу, в то время как я хотел бы выполнить их по одной строке за раз.

После компиляции проекта, я попытался выполнение import bestbuy.Laptop в Scala консоли, но получил сообщение об ошибке:

scala> import bestbuy.Laptop 
<console>:13: error: not found: value bestbuy 
     import bestbuy.Laptop 
      ^

кажется, что путь к классам консоли не настроен должным образом. Как настроить путь к консоли консоли?

ответ

0

, чтобы использовать подобную замену среду в IntelliJ, просто создайте новый файл рабочей таблицы scala, и там вы можете импортировать свой класс Java и использовать его. IDE скомпилирует все для вас.

Вы также можете использовать терминал, введите sbt console, и вы будете иметь свои ответы с вашими проектными классами в classpath, чтобы вы могли импортировать и использовать их.

+0

Я пробовал рабочий лист. Он говорит, что модуль не найден. Я предполагаю, что это связано с тем, что java-файл не скомпилирован и не добавлен в путь класса. Я что-то делаю неправильно? Кстати, если я хочу придерживаться своего сценария Scala, мне нужно вручную скомпилировать свой Java-код и добавить банку в зависимость от библиотеки в диалоге структуры проекта? – panc

+0

Убедитесь, что проект скомпилирован.На листе у вас мало значков игры и два флажка, один из которых - «Сделать проект», проверьте его и нажмите значок воспроизведения. Чтобы проверить, я создал новый проект sbt, в java создал пакет и базовый класс, тогда я создал рабочий лист в каталоге src (dir не должен иметь значения) и попытался создать новый экземпляр класса java. Я получил ту же ошибку, что и вы, но после того, как я проверил «Сделать проект», он работал так, как ожидалось. –

+0

Спасибо. Это действительно работает. Тем не менее, я все еще хочу знать способ запуска кода по строкам в Scala Console. – panc