有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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


共 (3) 个答案

  1. # 1 楼答案

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

    java myjarfile.jar
    
  2. # 2 楼答案

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

    1)cd文档 如果您已在文档中创建文件夹,请编写:

    2)cd文件夹名称 然后编译并编写:

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

    4)java(空格)不带扩展名的文件名。因为这次我们已经完成了我们的项目。和繁荣

    我以前用这种方式运行我的java项目。。。但很抱歉我用的是记事本而不是IntelliJ。希望对你有帮助。。。 根据你的题目,答案是正确的

  3. # 3 楼答案

    多亏了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文件