相关疑难解决方法(0)

您是否可以从命令行在包中运行所有JUnit测试而无需明确列出它们?

如果测试类和JUnit都在类路径上,则可以从命令行运行JUnit测试,如下所示:

java org.junit.runner.JUnitCore TestClass1 TestClass2
Run Code Online (Sandbox Code Playgroud)

现在,有没有办法在包(和子包)中运行所有测试?

我正在寻找类似的东西

java org.junit.runner.JUnitCore com.example.tests.testsIWantToRun.*
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法(不涉及maven或ant)?

java junit command-line unit-testing

14
推荐指数
1
解决办法
9911
查看次数

Intellij Java 2016和Maven:如何在JAR中嵌入依赖项?

我正在使用Intellij Java 2016.2.2和Maven来创建一个非常简单的Java控制台应用程序.

我想添加一个外部库,所以我在Maven中添加我的依赖项,如下所示:

<dependency>
    <groupId>jline</groupId>
    <artifactId>jline</artifactId>
    <version>2.12</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

它在IDE中运行时工作正常,但在外部控制台中没有(我有以下错误:java.lang.NoClassDefFoundError).

我检查过,由于某种原因,我刚刚生成的JAR中没有添加外部JAR.我还在"文件 - >项目结构"中尝试了很多东西,但仍然没有工作......

我只想用我的依赖项构建我的JAR,所以我可以使用以下命令在控制台中运行我的应用程序:

java -jar myproject.jar
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?谢谢你的帮助!

java dependencies jar intellij-idea maven

14
推荐指数
2
解决办法
1万
查看次数

Maven给出错误:-source 1.5不支持try-with-resources

我尝试使用IntelliJ 12.1.4和Java 7创建一个使用Maven 3.0.5的jar时出错.我能够通过IDE运行项目没有问题,但是当我尝试打包它时,我得到以下错误.

(摘自我的POM的相关部分Maven By Example通过Sonatype)是:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <descriptorRefs>jar-with-dependencies</descriptorRefs>
            </configuration>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

而错误是:

[ERROR] ...[33,55] error: diamond operator is not supported in -source 1.5
[ERROR] ...[207,7] error: try-with-resources is not supported in -source 1.5
[ERROR] ...[73,52] error: diamond operator is not supported in -source 1.5
[ERROR] ...[129,40] error: multi-catch statement is not supported in -source 1.5
[ERROR] ...[44,6] error: try-with-resources is not supported in -source 1.5
[ERROR] ...[28,39] error: diamond operator …
Run Code Online (Sandbox Code Playgroud)

java maven

13
推荐指数
1
解决办法
2万
查看次数

org.apache.spark.SparkException:作业因阶段失败而中止:来自应用程序的任务

我在独立群集上运行spark应用程序时遇到问题.(我使用spark 1.1.0版本).我通过命令成功运行主服务器:

bash start-master.sh 
Run Code Online (Sandbox Code Playgroud)

然后我按命令运行一个worker:

bash spark-class org.apache.spark.deploy.worker.Worker spark://fujitsu11:7077
Run Code Online (Sandbox Code Playgroud)

在master的web UI上:

http://localhost:8080  
Run Code Online (Sandbox Code Playgroud)

我明白了,那个主人和工人正在奔跑.

然后我从Eclipse Luna运行我的应用程序.我成功连接到cluster by命令

JavaSparkContext sc = new JavaSparkContext("spark://fujitsu11:7077", "myapplication");
Run Code Online (Sandbox Code Playgroud)

并且在该应用程序工作之后,但当程序实现以下代码时:

 JavaRDD<Document> collectionRdd = sc.parallelize(list);
Run Code Online (Sandbox Code Playgroud)

它崩溃了以下错误消息:

 org.apache.spark.SparkException: Job aborted due to stage failure: Task 7 in stage 0.0 failed 4 times, most recent failure: Lost task 7.3 in stage 0.0 (TID 11, fujitsu11.inevm.ru):java.lang.ClassNotFoundException: maven.maven1.Document
 java.net.URLClassLoader$1.run(URLClassLoader.java:366)
 java.net.URLClassLoader$1.run(URLClassLoader.java:355)
 java.security.AccessController.doPrivileged(Native Method)
 java.net.URLClassLoader.findClass(URLClassLoader.java:354)
  java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Class.java:270)
    org.apache.spark.serializer.JavaDeserializationStream$$anon$1.resolveClass(JavaSerializer.scala:59)
    java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)
    java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
    java.io.ObjectInputStream.readArray(ObjectInputStream.java:1706)
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1344)
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
    java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:500)
    org.apache.spark.rdd.ParallelCollectionPartition.readObject(ParallelCollectionRDD.scala:74) …
Run Code Online (Sandbox Code Playgroud)

apache-spark

12
推荐指数
2
解决办法
6万
查看次数

如何在maven-jar-plugin中指定--main-class和--module-version?

如果我从命令行在Java 9上构建JAR,我将一个参数传递--main-class给包含MainClass属性module-info.class:

jar --create --file <filename> --main-class=<mainclass> --module-version 0.1 -C classes .
Run Code Online (Sandbox Code Playgroud)

但是如果我从maven构建一个JAR呢?这是我的maven-jar-plugin配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.0.2</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)

我可以通过自定义的参数maven-jar-plugin(如compilerArgsmaven-compiler-plugin)?

java maven java-9

12
推荐指数
2
解决办法
3784
查看次数

Maven和Netbeans:我如何构建项目并获取可执行jar?

我刚刚在Netbeans 7.4中启动了标准Maven - > Java Application.默认情况下,它创建了"App"类(具有main方法).我还去了项目的Properties-> Run并将该类设置为Main Class.然后我建立了这个项目.

在项目目录中,我得到了带有几个罐子的"目标"文件夹.它们都不是可执行的.我如何简单地解决问题并在每次构建结束时获取可执行jar?

谢谢.

java netbeans executable-jar maven

10
推荐指数
1
解决办法
2万
查看次数

Maven - java.lang.ClassNotFoundException:com.mysql.jdbc.Driver

我有一个基于Maven的Java应用程序,并希望连接到MySQL服务器.

我的pom有:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.17</version>
    <type>jar</type>
    <scope>runtime</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

运行时,因为我想在运行时连接到MySQL服务器 - 也尝试过编译和提供,但不起作用.

SQL代码是标准的:

String dbClass = "com.mysql.jdbc.Driver";

Class.forName(dbClass);
Connection connection = DriverManager.getConnection(dbUrl,
    username, password);
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query);
while (resultSet.next()) {
    String tableName = resultSet.getString(1);
    System.out.println("Table name : " + tableName);
}
Run Code Online (Sandbox Code Playgroud)

当我从Eclipse运行它,它工作正常并打印表名.

但是,从maven开始,生成的SNAPSHOT java -jar target\File.jar在运行后通过>执行时总是会出错mvn clean install.

java.lang.ClassNotFoundException:com.mysql.jdbc.Driver

为了让maven构建起作用,我在这里缺少什么?运行mvn clean install没有错误,并且构建正常.只有在执行SNAPSHOT exe时才会发生错误.

MySQL jar在我的.m2 repo中,我尝试通过mvn命令行显式添加它,但是它已经存在了.

java mysql eclipse maven

10
推荐指数
1
解决办法
3万
查看次数

如何使用onejar Maven插件在清单中设置其他类路径条目?

有没有办法使用onejar-maven-plugin将任意类路径条目添加到JAR文件清单?

我找到了配置maven-jar-plugin来实现这一目标的方法,但似乎没有针对onejar-maven-plugin的选项.

这不是为了找到其他类(否则为什么要使用onejar插件,对吧?),而是找到一个必须在JAR外部的配置文件.

对此有直接的解决方案或解决方法吗?

java jar maven maven-jar-plugin onejar

10
推荐指数
1
解决办法
1020
查看次数

如何创建可以通过单击运行的Java应用程序?

我想有一个可以轻松启动的Java应用程序.

到目前为止,我已设法创建一个jar文件,但我还没有看到任何优势.在我通过"java HelloWorldSwing"运行我的应用程序之前,现在我使用"java -jar HelloWorldSwing.jar"(这比上一个命令更复杂,据我所知,jar文件的使用需要存在*.mf文件在同一目录中).

我想有以下两种情况之一:

  1. 只需一个文件即可复制到另一个操作系统,只需在文件浏览器中单击此文件即可启动项目(此时如果点击我的jar文件,Ubuntu开始提取存档(因为jar是一个存档) , 我知道)).

  2. 创建一个象形图,可以放在桌面上,然后单击它启动我的Java程序.

java jar

9
推荐指数
2
解决办法
3万
查看次数

从基于Spring的Java应用程序创建单个可执行JAR

我有一个基于spring的应用程序,它执行组件/包扫描,查找特定命名空间内的包.该应用程序在Eclipse中运行完美,我想创建一个可执行的JAR来部署到我们的各种环境.

我已经尝试了各种方法来实现这一点,但唯一可行的是,如果我将依赖项包含在JAR之外的文件夹中.这是我到目前为止所尝试的 -

  1. Maven这里编译到一个jar,使用这种方法创建单个JAR,并将依赖项作为类包含在内.使用时运行JAR -

    "java -jar jarName.jar"

    我得到一个错误说明 - "错误:配置问题:无法找到XML架构命名空间的Spring NamespaceHandler http://www.springframework.org/schema/context] "

  2. 使用 Eclipse中的Export'As Runnable JAR file',并在Library Handling部分中选择'Extract required libraries to generated JAR'.

    这也构建了一个jar,其依赖关系作为其中的类.运行jar时,我得到相同的"错误:配置问题:无法找到XML架构命名空间的Spring NamespaceHandler [ http://www.springframework.org/schema/context] "

  3. 使用 Eclipse中的Export'As Runnable JAR file',并在Library Handling部分选择'将所需的库打包到生成的JAR'.

    这构建了一个jar,其中的依赖关系作为JAR(而不是类).当我运行此JAR时,我收到以下错误 -

    "无法在URL [rsrc:com/company /]下搜索匹配的文件,因为它与文件系统java.io.FileNotFoundException中的目录不对应:URL [rsrc:com/company /]无法解析为绝对文件路径因为它不驻留在文件系统中:rsrc:com/company/at org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:210"

    所以JAR运行但无法扫描我要求它找到的组件.

  4. 使用 Eclipse中的Export'As Runnable JAR file',并在Library Handling部分选择'将所需的库复制到生成的JAR旁边的子文件夹'.

    这将创建一个小JAR,其旁边有一个文件夹,其中包含所有依赖项作为JAR.当我运行它时,一切正常!

因此,我不认为这是我的代码的问题,包装弹簧在单个JAR中进行扫描似乎存在问题.这是对的吗?

有没有人对如何构建基于弹簧的应用程序进行包/组件扫描到单个可运行的JAR有任何建议?

答案:

我将以下XML添加到我的POM文件中并且只使用了"mvn package",它创建了一个可用的单个可执行jar.它的工作原理仍然是个谜.

      <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.3</version>
            <executions>
                <execution> …
Run Code Online (Sandbox Code Playgroud)

java eclipse spring jar maven

9
推荐指数
1
解决办法
1万
查看次数