我有以下项目。它在conf文件夹中有一些属性文件,数据文件夹中有一些数据,lib文件夹中有一些jar文件,还有一些由于大小限制而未在照片中显示的外部库。想象一下,我想运行RecDriver类。我应该如何设置类路径以便我可以在命令行中运行它?这就是我这样做的方法,但它不起作用,因为它无法使项目中的其他文件更好。
C:\Users\myUserName\Downloads\librec-2.0.0\librec-2.0.0\core\src\main\java\net\librec\tool\driver> javac RecDriver.java
该项目可以在这里下载:
答案 0 :(得分:1)
您可以使用bin / librec或bin / librec.cmd从命令行运行它。
如果您想构建启动命令,可以查看这些启动脚本并根据您的需要进行调整。
答案 1 :(得分:0)
要通过命令行运行您的应用程序,一旦您在某个目录(通常是构建版本)中有.class文件,您所要做的就是使用java -cp "path where jvm can find every .class that you project needs" MainClass
运行您的应用程序。
-cp标志只告诉在哪里查找已编译的.class文件,因为您使用的是IntellIJ,您可以看到它在执行程序时运行的命令,它有一个使用的类路径。
类路径指向.class文件所在的位置,它们可以位于不同的文件夹中,但是在给出类路径时需要包含每个目录,用";"
分隔从SO中的另一个问题中取得的例子。
java -cp" Test.jar; lib / *" my.package.MainClass
答案 2 :(得分:0)
要做的三件事:
<project><build><finalName>
设为${artifactId}
现在,在您的构建成功运行后,您可以使用
运行您的应用java -jar target/YourArtifactId.jar
(用&#34; YourArtifactId&#34代替你的项目&artifactId;)
好的,这是完整的设置。 将这样的构建部分添加到pom.xml(将其与任何现有的部分合并)。
<build>
<plugins>
<!-- number 1 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<minimizeJar>true</minimizeJar>
</configuration>
</execution>
</executions>
</plugin>
<!-- number 2 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
<!-- number 3 -->
<finalName>${project.artifactId}</finalName>
</build>