Cuando trato de ejecutar “ejecutivo” en SBT, me sale “Error al ejecutar ejecutivo: java.lang.ArrayIndexOutOfBoundsException: 0”. ¿Como arreglar?

StackOverflow https://stackoverflow.com/questions/3860800

  •  27-09-2019
  •  | 
  •  

Pregunta

Si creo un proyecto de SBT, incluso un simple "hola mundo", compilación (con éxito) y luego Exec, se lanza el error folowing. Lo que puede ser la razón y cómo solucionar este problema?


java.lang.ArrayIndexOutOfBoundsException: 0
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
    at sbt.SimpleProcessBuilder.run(ProcessImpl.scala:381)
    at sbt.AbstractProcessBuilder.run(ProcessImpl.scala:130)
    at sbt.AbstractProcessBuilder.$bang(ProcessImpl.scala:158)
    at sbt.ExecProject$$anonfun$execOut$1.apply(ScalaProject.scala:436)
    at sbt.ExecProject$$anonfun$execOut$1.apply(ScalaProject.scala:435)
    at sbt.TaskManager$Task.invoke(TaskManager.scala:62)
    at sbt.impl.RunTask.doRun$1(RunTask.scala:77)
    at sbt.impl.RunTask.runTask(RunTask.scala:85)
    at sbt.impl.RunTask.run(RunTask.scala:32)
    at sbt.impl.RunTask$.apply(RunTask.scala:17)
    at sbt.impl.RunTask$.apply(RunTask.scala:16)
    at sbt.Project$class.run(Project.scala:98)
    at sbt.Project$class.call(Project.scala:93)
    at sbt.BasicScalaProject.call(DefaultProject.scala:21)
    at sbt.xMain$$anonfun$7.apply(Main.scala:512)
    at sbt.xMain$$anonfun$7.apply(Main.scala:512)
    at sbt.xMain.withAction(Main.scala:541)
    at sbt.xMain.sbt$xMain$$handleAction(Main.scala:512)
    at sbt.xMain.handleCommand(Main.scala:502)
    at sbt.xMain.processAction(Main.scala:441)
    at sbt.xMain.process$1(Main.scala:257)
    at sbt.xMain$Continue$1.apply(Main.scala:132)
    at sbt.xMain.run$1(Main.scala:136)
    at sbt.xMain.processArguments(Main.scala:266)
    at sbt.xMain.startProject(Main.scala:107)
    at sbt.xMain.run(Main.scala:84)
    at sbt.xMain.run0$1(Main.scala:35)
    at sbt.xMain.run(Main.scala:42)
    at xsbt.boot.Launch$.run(Launch.scala:53)
    at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:42)
    at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:42)
    at xsbt.boot.Launch$.launch(Launch.scala:57)
    at xsbt.boot.Launch$.explicit(Launch.scala:42)
    at xsbt.boot.Launch$.initialized(Launch.scala:38)
    at xsbt.boot.Launch$.parsed(Launch.scala:31)
    at xsbt.boot.Launch$.configured(Launch.scala:21)
    at xsbt.boot.Launch$.apply(Launch.scala:16)
    at xsbt.boot.Launch$.apply(Launch.scala:13)
    at xsbt.boot.Boot$.runImpl(Boot.scala:24)
    at xsbt.boot.Boot$.run(Boot.scala:19)
    at xsbt.boot.Boot$.main(Boot.scala:15)
    at xsbt.boot.Boot.main(Boot.scala)
[info] == exec ==
[error] Error running exec: java.lang.ArrayIndexOutOfBoundsException: 0

¿Fue útil?

Solución

El objetivo de la acción de la creación exec es para ejecutar un comando en la shell subyacente. Como tal, debe ser seguido con un comando. EG:

exec killall firefox

Debajo de las sábanas, SBT llama java.lang.ProcessBuilder, que lanza esta excepción si los intentos de llamadas para iniciar, pero no ha proporcionado ningún parámetro.

IndexOutOfBoundsException - If the command is an empty list (has size 0)

Calculo SBT no debe ser la propagación de esta excepción y que esto es un error. Usted debe obtener un mensaje de error.

Tal vez buscaba la acción de la creación ejecutar , que invocará su clase principal.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top