从Jar存档中读取类的Java命令行麻烦

aco*_*che 2 java command-line

我正在尝试使用命令行语法运行基于java的工具,如下所示:java -cp archive.jar archiveFolder.theMainClassName.虽然我正在搜索的类,主类,"theMainClassName"在archive.jar中,在输入中给出的archiveFolder中,我不断收到我的类没有看到的错误.有没有人对这个问题有任何想法?先感谢您

Jon*_*eet 5

下面是一个具体的例子的工作,这样你可以比较你自己的情况.

将此代码放在任何位置,放在一个名为的文件中MainClass.java.(我假设了一个src稍后调用的目录.当然,通常你会安排源代码来匹配包.)

package archiveFolder;

public class MainClass
{
    public static void main(String[] args)
    {
        System.out.println("I'm MainClass");
    }
}
Run Code Online (Sandbox Code Playgroud)

然后运行以下每个命令:

# Compile the source
javac -d . src/MainClass.java

# Build the jar file
jar cf archive.jar archiveFolder

# Remove the unpackaged binary, to prove it's not being used
rm -rf archiveFolder # Or rmdir /s /q archiveFolder on Windows

# Execute the class
java -cp archive.jar achiveFolder.MainClass
Run Code Online (Sandbox Code Playgroud)

结果:

I'm MainClass
Run Code Online (Sandbox Code Playgroud)

你是如何构建jar文件的?代码是否在相应的包中?