编译如何从命令行编译和执行Java项目?
我正试图从命令行编译和运行一个用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
我以前从未做过这种事情,所以我可能错过了一些明显的东西。有什么帮助吗
# 1 楼答案
请尝试以下步骤: -从intellij导出项目的可运行jar。请参阅https://stackoverflow.com/q/1082580/12070280了解如何做到这一点。 -确保系统路径变量设置为java bin。 -导航到导出jar文件的路径,然后运行
# 2 楼答案
为此,必须指定保存文件的路径。java文件。 如果它在文档(文件夹)中,只需在命令行中写入:
1)cd文档 如果您已在文档中创建文件夹,请编写:
2)cd文件夹名称 然后编译并编写:
3)javac(空格)您的文件名以及。java扩展(javac代表java编译) 如果您的项目包含编译时错误,它将在此阶段提示。 编译后,您必须编写:
4)java(空格)不带扩展名的文件名。因为这次我们已经完成了我们的项目。和繁荣
我以前用这种方式运行我的java项目。。。但很抱歉我用的是记事本而不是IntelliJ。希望对你有帮助。。。 根据你的题目,答案是正确的
# 3 楼答案
多亏了Thilo,我成功地从命令行运行了该文件。这是一个Maven项目,这意味着它应该通过Maven命令编译和运行。以下是我采取的步骤:
步骤1:确保Maven is installed
步骤2:打开我的项目根文件夹中的
pom.xml
步骤3:将以下插件添加到
<build><plugins></plugins></build>
标记中:步骤4:在命令行中导航到项目的根文件夹
第5步:运行
mvn compile
和mvn 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文件