如何将JAR文件作为Java程序运行http://iapg.jade-hs.de/personen/brinkhoff/generator/
我需要从这个项目运行一个特定的类 iapg.jade-hs.de/personen/brinkhoff/generator/ 生成器的jar文件位于以下位置: iapg.jade-hs.de/personen/brinkhoff/generator/RunTime21.zip 关于运行部分的文档不多。主要假设用户有足够的能力知道如何做到这一点 jar文件包含以下内容:如何将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
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
。