【问题标题】:Java -cp class not found找不到 Java -cp 类
【发布时间】:2012-06-16 08:26:25
【问题描述】:
java -server -Xmx2G -cp config:./* l2p.loginserver.LoginServer

MAC: OK!
WINDOWS: Cannot find class l2p.loginserver.LoginServer
LINUX: Cannot find class l2p.loginserver.LoginServer

附加信息:jar 文件名为 kernel.jar,它位于执行命令的同一文件夹中

如果我使用 java -server -cp kernel.jar l2p.loginserver.LoginServer 类开始加载,但我需要配置,因为我在那里有 log4j xml。 谢谢!

【问题讨论】:

    标签: java classpath


    【解决方案1】:

    this answer

    在 java 类路径中,如果使用通配符 *,它只会从该位置加载 .jar 文件。

    java -server -Xmx2G -cp config:kernel.jar l2p.loginserver.LoginServer
    

    log4j 的问题是类路径中的第一个 log4j.xml 将被加载。所以把配置放在前面。

    【讨论】:

    • .conf 文件不是有效的类路径条目,不是吗?听起来它确实是需要在类路径中的配置 目录
    • 这对我没有帮助,正如我所说我正在加载一个名为 kernel.jar 的 jar 文件
    • @user1460357 你能试试这个吗 - 在配置目录中创建一个虚拟属性文件props,其中包含一些虚拟值“xyz=abc”,然后将它作为props.load(this.class.getClassLoader().getResourceAsStream("props")); System.out.println(props.get("xyz")); 加载到你的类中。只是为了确保问题出在类路径设置上。
    【解决方案2】:

    我认为您不能在 -cp 参数中使用这样的通配符。它们不会以正确的方式扩展,根据需要用冒号分隔。试试

    java -cp config:kernel.jar l2p.loginserver.LoginServer
    

    (当然还有你需要的其他参数。)

    请注意,这是假设您使用的是 Unix。在 Windows 上,您需要

    java -cp config;kernel.jar l2p.loginserver.LoginServer
    

    (路径分隔符在 Windows 上是 ;,但在 Unix 上是 :。)

    【讨论】:

    • 不工作,找不到或加载主类config:kernel.jar
    • @user1460357:你确定你包含了-cp 部分吗?如果您忘记了,我希望您会收到该错误...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 2011-03-01
    • 2012-08-19
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多