Can java run a compiled scala code?

Viewed 15325

Can command java run a compiled scala code? If so, why do we have an exclusive command scala?

5 Answers

If you look closely, the scala command is simply a bash helper-script which summarize to the below command:

$cat /usr/local/Cellar/scala@2.11/2.11.12_1/libexec/bin/scala

execCommand \
  "${JAVACMD:=java}" \
  $JAVA_OPTS \
  "${java_args[@]}" \
  "${classpath_args[@]}" \
  -Dscala.home="$SCALA_HOME" \
  $OVERRIDE_USEJAVACP \
  "$EMACS_OPT" \
  $WINDOWS_OPT \
   scala.tools.nsc.MainGenericRunner  "$@"

There are 2 things required to run a .class file compiled using scalac ( the scala compiler) using the java command.

  1. We need to include the scala-library.jar and the location of the .class file in the classpath. To find the location of scala-library.jar, please execute the below:

    which scala /usr/local/opt/scala@2.11/bin/scala

    In my case the scala-*.jar files are in : /usr/local/Cellar/scala@2.11/2.11.12_1/idea/lib on Mac

  2. The location of the Main2.class file which is in /training/example1/scala.

So, to execute the program we could use the below command:

java -cp /usr/local/Cellar/scala@2.11/2.11.12_1/idea/lib/scala-library.jar:/training/example1/scala/ Main2

EDIT-1: If you are using windows, please use semicolon(;) as the separator in java classpath command.

Related