如果测试类和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)?
我正在使用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)
我怎样才能做到这一点?谢谢你的帮助!
我尝试使用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) 我在独立群集上运行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) 如果我从命令行在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(如compilerArgs为maven-compiler-plugin)?
我刚刚在Netbeans 7.4中启动了标准Maven - > Java Application.默认情况下,它创建了"App"类(具有main方法).我还去了项目的Properties-> Run并将该类设置为Main Class.然后我建立了这个项目.
在项目目录中,我得到了带有几个罐子的"目标"文件夹.它们都不是可执行的.我如何简单地解决问题并在每次构建结束时获取可执行jar?
谢谢.
我有一个基于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命令行显式添加它,但是它已经存在了.
有没有办法使用onejar-maven-plugin将任意类路径条目添加到JAR文件清单?
我找到了配置maven-jar-plugin来实现这一目标的方法,但似乎没有针对onejar-maven-plugin的选项.
这不是为了找到其他类(否则为什么要使用onejar插件,对吧?),而是找到一个必须在JAR外部的配置文件.
对此有直接的解决方案或解决方法吗?
我想有一个可以轻松启动的Java应用程序.
到目前为止,我已设法创建一个jar文件,但我还没有看到任何优势.在我通过"java HelloWorldSwing"运行我的应用程序之前,现在我使用"java -jar HelloWorldSwing.jar"(这比上一个命令更复杂,据我所知,jar文件的使用需要存在*.mf文件在同一目录中).
我想有以下两种情况之一:
只需一个文件即可复制到另一个操作系统,只需在文件浏览器中单击此文件即可启动项目(此时如果点击我的jar文件,Ubuntu开始提取存档(因为jar是一个存档) , 我知道)).
创建一个象形图,可以放在桌面上,然后单击它启动我的Java程序.
我有一个基于spring的应用程序,它执行组件/包扫描,查找特定命名空间内的包.该应用程序在Eclipse中运行完美,我想创建一个可执行的JAR来部署到我们的各种环境.
我已经尝试了各种方法来实现这一点,但唯一可行的是,如果我将依赖项包含在JAR之外的文件夹中.这是我到目前为止所尝试的 -
Maven从这里编译到一个jar,使用这种方法创建单个JAR,并将依赖项作为类包含在内.使用时运行JAR -
"java -jar jarName.jar"
我得到一个错误说明 - "错误:配置问题:无法找到XML架构命名空间的Spring NamespaceHandler http://www.springframework.org/schema/context] "
使用 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] "
使用 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运行但无法扫描我要求它找到的组件.
使用 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 ×9
maven ×7
jar ×4
eclipse ×2
apache-spark ×1
command-line ×1
dependencies ×1
java-9 ×1
junit ×1
mysql ×1
netbeans ×1
onejar ×1
spring ×1
unit-testing ×1