繁体   English   中英

如何从命令行编译和执行 Java 项目?

[英]How to compile and execute a Java project from the command line?

我正在尝试从命令行编译和运行在 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 已安装

第二步:打开我项目根目录下的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

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

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

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

为此,您必须指定保存.java 文件的路径。 如果它在文档(文件夹)中,只需在命令行上写:

1) cd 文档如果您在文档中创建了一个文件夹,则写入:

2) cd foldername然后编译写入:

3) javac(空格)您的文件名以及.java扩展名。 (javac 代表 java 编译)如果您的项目包含编译时错误,它将在此阶段提示。 编译后你必须写:

4) java(空格)你的文件名没有扩展名 因为这次我们已经编译了我们的项目。 和繁荣

我曾经以这种方式运行我的 java 项目......但很抱歉我使用的是记事本而不是 IntelliJ。 希望对您有所帮助...根据您的问题标题,答案是正确的。

请尝试以下步骤: - 从 intellij 为您的项目导出可运行的 jar。 请参阅https://stackoverflow.com/q/1082580/12070280了解如何操作。 - 确保您的系统路径变量设置为 java bin。 - 导航到您导出 jar 文件的路径,然后运行

java myjarfile.jar

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM