如何将JAR文件作为Java程序运行http://iapg.jade-hs.de/personen/brinkhoff/generator/

如何将JAR文件作为Java程序运行http://iapg.jade-hs.de/personen/brinkhoff/generator/,java,jar,Java,Jar,我需要从这个项目运行一个特定的类 iapg.jade-hs.de/personen/brinkhoff/generator/ 生成器的jar文件位于以下位置: iapg.jade-hs.de/personen/brinkhoff/generator/RunTime21.zip 关于运行部分的文档不多。主要假设用户有足够的能力知道如何做到这一点 jar文件包含以下内容: META-INF/MANIFEST.MF spatial/BasicSpatialQuery.class drawables/D

我需要从这个项目运行一个特定的类 iapg.jade-hs.de/personen/brinkhoff/generator/

生成器的jar文件位于以下位置: iapg.jade-hs.de/personen/brinkhoff/generator/RunTime21.zip

关于运行部分的文档不多。主要假设用户有足够的能力知道如何做到这一点

jar文件包含以下内容:

META-INF/MANIFEST.MF
spatial/BasicSpatialQuery.class
drawables/DrawableObjects.class
spatialdb/DefaultGeometryFactory.class
spatial/LayerWindowQuery.class
util/Num.class
...
...
...
generator2/ExternalObject.class
generator2/DefaultDataGenerator.class
drawables/DrawableCircle.class
spatial/ExactMatchQuery.class
drawables/DrawableObject.class
generator2/ConstantObjectGenerator.class
drawables/DrawableSpatialSearchTreeObject.class
java -classpath .;generator21.jar generator2.DefaultDataGenerator propOL.txt
    /**
     * main entrypoint - starts the part when it is run as an application
     * @param args args[0] = name of the property file
     */
    public static void main(java.lang.String[] args) {
            if ((args.length > 0) && (args[0] != null))
                    propFilename = makeAbsolute(args[0]);
            main ("generator2.DefaultDataGenerator");
我需要使用生成器附带的特定参数运行generator2/DefaultDataGenerator

清单文件中只有以下内容:

Manifest-Version: 1.0
有一个.bat文件(假设它是为Windows提供的)具有以下内容:

META-INF/MANIFEST.MF
spatial/BasicSpatialQuery.class
drawables/DrawableObjects.class
spatialdb/DefaultGeometryFactory.class
spatial/LayerWindowQuery.class
util/Num.class
...
...
...
generator2/ExternalObject.class
generator2/DefaultDataGenerator.class
drawables/DrawableCircle.class
spatial/ExactMatchQuery.class
drawables/DrawableObject.class
generator2/ConstantObjectGenerator.class
drawables/DrawableSpatialSearchTreeObject.class
java -classpath .;generator21.jar generator2.DefaultDataGenerator propOL.txt
    /**
     * main entrypoint - starts the part when it is run as an application
     * @param args args[0] = name of the property file
     */
    public static void main(java.lang.String[] args) {
            if ((args.length > 0) && (args[0] != null))
                    propFilename = makeAbsolute(args[0]);
            main ("generator2.DefaultDataGenerator");
问题:我不知道如何将generator2/DefaultDataGenerator作为Java程序(而不是小程序)实际运行

我试过:

1)
java-jargenerator21.jar
它给了我

Failed to load Main-Class manifest attribute from...
2)
java-classpath/generator21.jar generator2.DefaultDataGenerator propOL.txt
这给了我同样的错误,也就是

Failed to load Main-Class manifest attribute from /home/username/generator/generator21.jar
3) 已尝试根据编辑清单文件,并在其中添加了一行,内容如下:

Main-Class: generator2.DefaultDataGenerator 
主要是因为generator2.DefaultDataGenerator包的源文件来自以下来源:iapg.jade-hs.de/personen/brinkhoff/generator/CompleteSource21.zip

显示以下内容:

META-INF/MANIFEST.MF
spatial/BasicSpatialQuery.class
drawables/DrawableObjects.class
spatialdb/DefaultGeometryFactory.class
spatial/LayerWindowQuery.class
util/Num.class
...
...
...
generator2/ExternalObject.class
generator2/DefaultDataGenerator.class
drawables/DrawableCircle.class
spatial/ExactMatchQuery.class
drawables/DrawableObject.class
generator2/ConstantObjectGenerator.class
drawables/DrawableSpatialSearchTreeObject.class
java -classpath .;generator21.jar generator2.DefaultDataGenerator propOL.txt
    /**
     * main entrypoint - starts the part when it is run as an application
     * @param args args[0] = name of the property file
     */
    public static void main(java.lang.String[] args) {
            if ((args.length > 0) && (args[0] != null))
                    propFilename = makeAbsolute(args[0]);
            main ("generator2.DefaultDataGenerator");
然而,当我编辑清单文件并试图通过java-jar jarfile.jar运行它时 我得到了以下错误:

     Exception in thread "main" java.lang.NoClassDefFoundError:   
     generator2/DefaultDataGenerator Caused by:
    java.lang.ClassNotFoundException: generator2.DefaultDataGenerator
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    Could not find the main class: generator2.DefaultDataGenerator. 
    Program will exit
请帮忙


谢谢

这就是问题所在:我需要指定jar所在的目录,而不是jar本身。java-classpath../generator/generator2.DefaultDataGenerator使其运行

这就是问题所在:我需要指定jar不是jar本身的目录。java-classpath../generator/generator2.DefaultDataGenerator使其运行请将此作为答案添加并接受,这样问题将被关闭。我建议修复清单,以便您可以使用
java-jar
运行它,而不需要在命令行上运行
-classpath