gpt4 book ai didi

java - 如何从命令行编译并执行Java项目?

转载 作者:行者123 更新时间:2023-12-02 08:44:42 27 4
gpt4 key购买 nike

我正在尝试从命令行编译并运行在 IntelliJ 中完成的 java 项目,但我对如何执行它有点困惑。这是我的项目结构:

├───src
│ ├───main
│ │ ├───java
│ │ │ │ Main.java // Main method's in here.
│ │ │ │
│ │ │ ├───objectclasses
│ │ │ │ Application.java
│ │ │ │
│ │ │ └───utils
│ │ │ Defs.java
│ │ │ Api.java
│ │ │ FileIO.java
│ │ │
│ │ └───resources
│ │ applicationIDs.tmp
│ │ applications.csv
│ │
│ └───test
│ └───java
└───target
// .class files compiled by IntelliJ

进入命令行,导航到 java 目录,然后简单地输入:

javac Main.java

不起作用并返回错误,指出无法找到代码中引用的所有包和符号。我还尝试导航到根目录并运行:

javac -d target -sourcepath src src/main/java/Main.java

返回类似的错误。最后,我尝试了以下方法,它直接说“没有源文件”:

$ javac -d target -sourcepath src -cp . 

返回的错误:

src\main\java\Main.java:1: error: package objectclasses does not exist
import objectclasses.Application;
^
src\main\java\Main.java:2: error: package utils does not exist
import utils.Defs;
^
src\main\java\Main.java:3: error: package utils does not exist
import utils.Api;
^
src\main\java\Main.java:4: error: package utils does not exist
import utils.FileIO;
^
src\main\java\Main.java:58: error: cannot find symbol
private static void updateApplicationsFile(List<Application> applications)
^
symbol: class Application
location: class Main
src\main\java\Main.java:17: error: cannot find symbol
Api api= new Api(
^
symbol: class Api
location: class Main
src\main\java\Main.java:17: error: cannot find symbol
Api api = new Api(
^
symbol: class Api
location: class Main
src\main\java\Main.java:18: error: cannot find symbol
Defs.API_JSONRPC,
^
symbol: variable Defs
location: class Main
src\main\java\Main.java:19: error: cannot find symbol
Defs.API_ID,
^
symbol: variable Defs
location: class Main
src\main\java\Main.java:20: error: cannot find symbol
Defs.API_KEY,
^
symbol: variable Defs
location: class Main
src\main\java\Main.java:21: error: cannot find symbol
Defs.API_SESSION_ID,
^
symbol: variable Defs
location: class Main
src\main\java\Main.java:22: error: cannot find symbol
Defs.API_DOMAIN);
^
symbol: variable Defs
location: class Main
src\main\java\Main.java:26: error: cannot find symbol
List<Application> applications = api.getApplicationsFromIDList(applicationIDs);
^
symbol: class Application
location: class Main
src\main\java\Main.java:40: error: cannot find symbol
FileIO.writeIDsToFile(applicationIDs);
^
symbol: variable FileIO
location: class Main
src\main\java\Main.java:63: error: cannot find symbol
FileIO.writeApplicationsToFile(applications);
^
symbol: variable FileIO
location: class Main
15 errors

我以前从未做过此类事情,所以我可能错过了一些明显的东西。有什么帮助吗?

最佳答案

感谢 Thilo,我设法从命令行运行该文件。这是一个 Maven 项目,这意味着它应该通过 Maven 命令编译和运行。这些是我采取的步骤:

第 1 步:确保 Maven is installed .

第 2 步:打开 pom.xml在我的项目的根文件夹中。

第3步:将以下插件添加到 <build><plugins></plugins></build>标签:

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>

第 4 步:在命令行中导航到项目的根文件夹。

第 5 步:运行 mvn compilemvn package .

第 6 步:记下 JAR 文件在返回日志中指定的目录中的位置。就我而言,它是:

target\App-1.0-SNAPSHOT-jar-with-dependencies.jar

第 7 步:使用 java -jar target\App-1.0-SNAPSHOT-jar-with-dependencies.jar 运行 JAR 文件

关于java - 如何从命令行编译并执行Java项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61156178/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com