Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用maven依赖项和一些java代码运行scala应用程序_Java_Scala_Maven - Fatal编程技术网

使用maven依赖项和一些java代码运行scala应用程序

使用maven依赖项和一些java代码运行scala应用程序,java,scala,maven,Java,Scala,Maven,我已经创建了一个Scala应用程序。此应用程序具有一些maven依赖项。但是这个应用程序也有一些java代码。Scala代码正在使用中 src/main/scala/... src/main/java/... java代码正在开发中 src/main/scala/... src/main/java/... 我通过scala使用它。主类是scala对象(不是java)。我通过IntelliJ成功编译了应用程序。当我尝试使用以下命令运行应用程序时: scala -J-Xmx4g MyApp.

我已经创建了一个Scala应用程序。此应用程序具有一些maven依赖项。但是这个应用程序也有一些java代码。Scala代码正在使用中

src/main/scala/...
src/main/java/...
java代码正在开发中

src/main/scala/...
src/main/java/...
我通过scala使用它。主类是scala对象(不是java)。我通过IntelliJ成功编译了应用程序。当我尝试使用以下命令运行应用程序时:

scala -J-Xmx4g MyApp.jar
我得到以下例外情况:

java.lang.NullPointerException
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at scala.reflect.internal.util.ScalaClassLoader$$anonfun$tryClass$1.apply(ScalaClassLoader.scala:43)
    at scala.reflect.internal.util.ScalaClassLoader$$anonfun$tryClass$1.apply(ScalaClassLoader.scala:43)
    at scala.util.control.Exception$Catch$$anonfun$opt$1.apply(Exception.scala:119)
    at scala.util.control.Exception$Catch$$anonfun$opt$1.apply(Exception.scala:119)
    at scala.util.control.Exception$Catch.apply(Exception.scala:103)
    at scala.util.control.Exception$Catch.opt(Exception.scala:119)
    at scala.reflect.internal.util.ScalaClassLoader$class.tryClass(ScalaClassLoader.scala:42)
    at scala.reflect.internal.util.ScalaClassLoader$class.tryToInitializeClass(ScalaClassLoader.scala:39)
    at scala.reflect.internal.util.ScalaClassLoader$URLClassLoader.tryToInitializeClass(ScalaClassLoader.scala:101)
    at scala.reflect.internal.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:63)
    at scala.reflect.internal.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:101)
    at scala.tools.nsc.CommonRunner$class.run(ObjectRunner.scala:22)
    at scala.tools.nsc.JarRunner$.run(MainGenericRunner.scala:13)
    at scala.tools.nsc.CommonRunner$class.runAndCatch(ObjectRunner.scala:29)
    at scala.tools.nsc.JarRunner$.runJar(MainGenericRunner.scala:25)
    at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:69)
    at scala.tools.nsc.MainGenericRunner.run$1(MainGenericRunner.scala:87)
    at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:98)
    at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:103)
    at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
请注意,我可以从IDE运行应用程序。还请注意,我添加了一些maven插件,正如其他网站建议的那样,但也有类似的例外。插件包括:

<plugins>
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>scala-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>scala-compile-first</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>add-source</goal>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>

net.alchim31.maven
scala maven插件
scala先编译
过程资源
添加源
编译
org.apache.maven.plugins
maven编译器插件
1.8
1.8

例外的原因是什么?

我的问题答案很简单。文件夹scala必须标记为“Sources Root”,文件夹java必须标记为IntelliJ的“Generated Sources Root”

该应用程序现在按预期工作