Java无法打开主类和jar文件

时间:2017-10-20 10:17:58

标签: java maven command-line jar

我使用客户端/服务器架构编写了一个Java聊天应用程序。作为构建工具,我使用了Maven。服务器端接口基于命令行,问题是我无法使用cmd运行应用程序

java Main 

来自{basedir} / target / classes(Main是我的主类),也没有打开jar文件的命令

java -jar ChatServer-1.0-SNAPSHOT

表单{basedir} / target。我没有为我的类创建任何包,它们被放在{basedir} / src / main / java目录中。当我尝试加载我的Main类时,这是输出:

Error: Could not find or load main class Main

当我尝试打开我的jar文件时,这是输出:

Unable to access jarfile ChatServer-1.0-SNAPSHOT

当我在IntelliJ中运行时,整个项目运行得非常好。我做错了什么?

修改
当我运行

时,我已将我的类移到pl.dsdev.server包中
java -jar ChatServer-1.0-SNAPSHOT.jar 

这是输出:

no main manifest attribute, in ChatServer-1.0-SNAPSHOT.jar

我的pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>pl.dsdev.projects</groupId>
<artifactId>ChatServer</artifactId>
<version>1.0-SNAPSHOT</version>

<packaging>jar</packaging>

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>pl.dsdev.server.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>

</build>

1 个答案:

答案 0 :(得分:0)

哎呀,它现在正在运作。我不知道是什么原因,但在我做完之后

mvn clean package 

并试图再次运行它终于工作了。