java - Java 是如何决定在哪里寻找主类的?

标签 java classpath

我在名为“staged”的文件夹中有一堆 .jar 文件。

/target
  /staged
    - akka-slf4j_2.10.0-RC1-2.1.0-RC1.jar
    - play_2.10-2.1-RC1.jar
    - etc...

虽然我的当前目录是“目标”,但我尝试运行命令

$ java -cp ./staged/* play.core.server.NettyServer ./..
Error: Could not find or load main class ..staged.akka-slf4j_2.10.0-RC1-2.1.0-RC1.jar

奇怪的是,Java 在 staged.akka-slf4j_2.10.0-RC1-2.1.0-RC1.jar 中寻找主类。 NettyServer 类位于一个名为 play_2.10-2.1-RC1.jar 的完全不同的 .jar 文件中。 Java 如何决定搜索哪些 .jar 文件以找到 main 方法?

最佳答案

Java 不搜索特定的 jar 文件。它只是在生成的类路径中搜索您在命令行中指定的类。

编辑:除非您指定“-jar”,否则它会使用 MANIFEST.MF 文件的 Main-Class 指令。

关于java - Java 是如何决定在哪里寻找主类的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15541393/

相关文章:

来自远程目录的 Java Class.forName()

java - JTableCell 中的图像图标

java - Imageview卡在android布局的顶部

java - 在运行时更改 Hadoop 用户名不起作用

classpath - Java 9 模块 : Can automatic Modules result in larger (full) projects?

java - 如何解决 ClassNotFoundException?

java - 在运行时使用 list 文件加载 jar

java - 使用 jUnit 进行 Spring Hibernate 存储库测试

java - 是否可以将全名转换为名字和姓氏?

jar - 将外部 jar 添加到 Eclipse 插件类路径