代码之家  ›  专栏  ›  技术社区  ›  Lydon Ch

Java- jar的类路径问题

  •  2
  • Lydon Ch  · 技术社区  · 14 年前

    我有一个可执行jar client.jar,它需要jndi.properties文件。 由于JNDI属性不是clit.jar的一部分,Java-jar忽略了-CasSpTras参数,

    如何执行jar并让它知道jndi.properties在哪里?

    谢谢

    //编辑,错误消息

    java -jar Client2.jar 
    Exception in thread "main" javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
    at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at com.don.Client.main(Client.java:10)
    
    2 回复  |  直到 14 年前
        1
  •  2
  •   Stephen C    14 年前

    我们需要更多关于如何告诉应用程序JNDI属性文件的位置的信息。

    它是否需要将属性文件位置作为命令行参数?如果是这样,您应该调用如下命令:

    java -jar <jarfile> <arguments>
    

    在哪里 <arguments> 包括提供JNDI属性文件的相关选项。

    它是否期望JNDI属性文件作为系统属性?如果是这样,您应该调用如下命令:

    java -jar <jarfile> -D<someproperty>=<location>
    

    在哪里 <someproperty> 是相关属性的名称。

    它期望在类路径上找到属性文件吗?如果是这样,您应该沿着以下行调用该命令:

    java -cp <jarfile>:<directory> <main-class>
    

    在哪里? <main-class> 是JAR文件清单中的主要类名,并且 <directory> 包含具有应用程序所需名称的JNDI属性文件。

    如果应用程序有正确的文档记录,则设置JNDI属性文件的首选方法将在安装和/或使用文档中。

        2
  •  1
  •   Kaleb Brasee    14 年前

    您应该能够手动引用主类并包含类路径上的所有jar,而不是使用-jar标志。