2015-10-20 81 views
0

我从eclipse中导出了一个jar文件,并在jar文件中导出了包含java类文件的各种包和子包。在Windows命令行的jar文件中的子包中运行一个类

我想在Windows中的命令行上运行这些嵌套类文件之一。

类有主,我使用下面的尝试运行它,

java -classpath .;./example.jar example

注意的例子是类的名称以及罐子。

我还试图拼出类

java -classpath .;./example.jar the.whole.path.example

如何运行的例子类的全路径?

编辑:

好了,这是一种愚蠢的,完整的路径是不正确的。我经过无数次检查,但只有当我回到它时,我才注意到这个错误。

+0

最后与.whole.path.example看起来正确。当你这样称呼时会发生什么? – Marged

+0

@已收集。它不会运行。我很可能错过了一些其他的依赖关系。 – Ares

+0

这是命令的输出吗? 'java不会运行'? – Marged

回答

1

没有看到任何代码或任何输出(提示,暗示),它是很难说发生了什么,但是这对我的作品:

$ cat x/y/z/A.java 
package x.y.z; 

public class A 
{ 
    public static void main(String args[]) throws Exception 
    { 
     System.out.println("here in A"); 
    } 
} 
$ javac x/y/z/A.java 
$ jar cvf a.jar x/y/z/A.class 
added manifest 
adding: x/y/z/A.class(in = 459) (out= 311)(deflated 32%) 
$ java -classpath a.jar x.y.z.A 
here in A 

而且万一海报或某人在未来阅读本对Unix不熟悉,以$开头的行是我输入到shell中的命令,其他所有内容都是从这些命令输出的。 Eclipse会为您处理前三项,然后最后的java -classpath a.jar x.y.z.A是执行x.y.z.A类中main方法的命令。

1

只是运行java -cp example.jar the.whole.path.example应该做的伎俩。如果没有,那么你的JAR文件是错误的。类名必须完全合格(包名),并且指定的类必须具有正确的主方法:

public static void main(String[] args) { 

} 
0

检查您的假设是否正确。显示你煲的结构和比较,您尝试运行什么:

jar tf example.jar 

如果罐子中含有大量的条目,你可能想用grep /查找相关类:

jar tf example.jar | find /i "Example" 
相关问题