gpt4 book ai didi

Java 类路径让我抓狂(找不到我的类)

转载 作者:行者123 更新时间:2023-11-29 05:55:56 25 4
gpt4 key购买 nike

好的,所以我得到了以下文件树:

<appfolder>
- MyApp.jar
- lib/
- log.jar
- someother.jar
- someother.jar
- someother2.jar
- config.properties
- otherfiles.extension

我已经尝试了几十种方式来启动这个应用程序。 MyApp 包含以下内容

MANIFEST.MF:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
Created-By: 1.7.0_06-b24 (Oracle Corporation)
Main-Class: myapp.Main
Class-Path: MyApp.jar lib/*

如果我调用 java -jar MyApp.jar,它总是说无法加载 lib/log.jar 中的任何类。

这是我尝试过的部分组合:

- *.jar lib/*
- *.jar lib/*.jar
- *.jar ./lib/*.jar
- ./*.jar lib/*.jar
- *.jar ./lib/*.jar
- tbc

没有任何效果。 Java 总是告诉我它找不到 lib/log.jar 中的类

我的下一次尝试是通过命令行指定类路径。

java -cp "MyApp.jar:lib/*"myapp.Main

但即使这样也行不通。在这种情况下,Java 表示找不到 myapp.Main 类。

我想我做的事情完全错了,因为我发现的所有方法都不起作用。如果我将 lib/log.jar 中的类放入 myApp.jar 并启动它,它就会工作。但这不是解决方案。

有什么想法吗?

编辑:我不想给每一个 lib jar 命名。我只希望 ClassLoader 在 ClassPath 中搜索所需的类。我已经见过很多次了。

最佳答案

对于 Linux,您应该能够执行如下操作:

java -cp MyApp.jar:lib:someotherjar.jar myapp.Main

您可以(可选!)对包含“main”的 .jar 使用“-jar”,或者您可以添加路径和 jar 文件(具有限定路径名) 到你的类路径。

这是 Java documentation

这里有点 better explanation

关于Java 类路径让我抓狂(找不到我的类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12134735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com