如何从命令行编译和执行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

我以前从未做过这样的事情,所以我可能会错过一些显而易见的事情。有什么帮助吗?

步 :

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

步骤1:确保已安装Maven

第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:使用以下命令运行JAR文件 java -jar target\App-1.0-SNAPSHOT-jar-with-dependencies.jar

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章