![]() |
1
1082
使用Java 6或更高版本,CLSSPATH选项支持通配符。注意以下几点:
窗户
UNIX
这与windows类似,但使用
(注意,使用类路径与
了解通配符 从 Classpath 文件:
注意:由于Java 8中已知的bug,Windows示例必须使用具有尾随星号的条目之前的反斜杠: https://bugs.openjdk.java.net/browse/JDK-8131329 |
![]() |
2
217
在Windows下,此操作有效:
但这不起作用:
注意*.jar, 所以*通配符应该单独使用 . 在Linux上,以下操作有效:
分隔符是冒号而不是分号。 |
|
3
63
我们通过部署
主要的
jar文件
所以如果你部署了
NB:这是平台无关的,我们可以使用相同的JAR来在UNIX服务器或Windows PC上启动。 |
|
4
44
我在Ubuntu 10.04上使用JavaSun1.60Y24在“LIB”目录中的所有jar的解决方案: java -cp .:lib/* my.main.Class 如果失败,下面的命令应该可以工作(将lib目录中的所有*.jar输出到classpath参数) java -cp $(for i in lib/*.jar ; do echo -n $i: ; done). my.main.Class |
![]() |
5
34
|
![]() |
6
32
简短回答:
Oracle提供了有关在类路径中使用通配符的文档 here for Java 6 和 here for Java 7 ,在节标题下 理解类路径通配符 . (在我写这篇文章的时候,这两页包含了相同的信息。)以下是要点摘要:
是的,我的第一个链接与得分最高的答案中提供的链接相同(我不希望超过这个链接),但除了链接之外,这个答案并没有提供太多的解释。因为这种行为是 discouraged 堆栈溢出 these days ,我想我应该扩大一下。 |
![]() |
7
26
你可以试试Java
运行Java时外部容器的目录 |
![]() |
8
25
窗户
:
Linux
:
提醒:
|
|
9
21
对的 :
不正确的:
|
![]() |
10
9
如果您真的需要动态地指定所有的.jar文件,可以使用shell脚本,或者 Apache Ant . 有一个公共项目叫做 Commons Launcher 它基本上允许您将启动脚本指定为一个ant构建文件(如果您明白我的意思)。 然后,你可以指定一些类似的东西:
在启动生成文件中,它将使用正确的类路径启动应用程序。 |
![]() |
11
9
如果使用Java 6,那么可以在类路径中使用通配符。 现在可以在类路径定义中使用通配符:
|
![]() |
12
8
请注意,Windows上的Java 7的通配符扩展被打破。 退房 this StackOverflow issue 更多信息。
解决方法是在通配符后面加上分号。
|
![]() |
13
6
对相关人员而言, 我在msys/mingw外壳下的窗户上发现了这种奇怪的行为。 作品:
不起作用:
我很确定通配符不会被shell扩展,因为例如。
(也尝试了另一个程序,而不是内置的
我相信是
这是
|
![]() |
14
4
如果您在Eclipse或NETBESE等IDE之外开发和运行Java应用程序,上述所有解决方案都非常有效。 如果您在Windows 7上,并且使用Eclipse IDE在爪哇进行开发,如果使用命令提示符运行Eclipse中构建的类文件,则可能会遇到问题。 例如,您在eclipse中的源代码具有以下包层次结构: edu.sjsu.myapp.main.java语言 将json.jar作为main.java的外部依赖项 当您尝试从eclipse中运行main.java时,它将运行而不会出现任何问题。 但是,当您在eclipse中编译main.java之后尝试使用命令提示符运行它时,它会抛出一些奇怪的错误,比如“classnotdef error blah blah”。 我假设你在你的源代码的工作目录中!! 使用以下语法在命令提示符下运行:
这是因为您已经将main.java放在了edu.sjsu.myapp包中,java.exe将寻找确切的模式。 希望有帮助!! |
![]() |
15
4
对于Windows,引号是必需的;应用作分隔符。例如。:
|
![]() |
16
4
简短表单:如果你的主体在一个jar中,你可能需要一个额外的'jar jar路径/ujal/ujARARSAME.jar ''被明确声明以使它工作(即使‘YouJavaSn.jar’在类路径上) (或者,表示回答5年前提出的原始问题:你不需要明确地重新声明每个JAR,但是看起来,即使是Java6,你也需要重新声明你自己的JAR……) 长形: (我已经明确指出,我希望即使是Java的介入者也可以利用这一点) 像这里的许多人一样,我使用eclipse导出jar:(file->export-->'runnable jar file')。“库处理”eclipse(juno)提供了三个选项:
通常我会使用OPT2(而OPT1确实是破的),但是我使用的一个JAR中的原生代码,我发现当你选择那个选项时,Eclipse使用的“JARIMANAR”技巧很容易出错。即使在意识到我需要opt3,然后找到这个stackoverflow条目之后,我还是花了一些时间来弄清楚如何在eclipse之外启动我的main,所以这里是对我有用的,因为它对其他人有用…… 如果你把你的jar命名为“foobarthejarfile.jar” 所有设置都导出到目录:“/thefully/qualifiedpath/toyourchosendir”。 (意思是“export destination”字段将读取:'/thefully/qualifiedpath/toyourchosendir/foobarthejarfile.jar') 点击finish之后,您会发现eclipse将所有库放入导出目录中名为“foobarthejarfile_lib”的文件夹中,这样您就可以:
然后,您可以从您的系统上的任何地方启动:
(对于JavaNeavys:'Pult.PaseTo.To.CaseLy.Auth.YouTrime'是在CulasHouthYouMeave.java文件的顶部找到的声明包路径,其中包含“希望从爪哇外部运行的主(String [AR]){…}” 需要注意的陷阱是:在声明的类路径上的jar列表中包含“foobarthejarfile.jar”是不够的。您需要显式声明'-jar',并重新声明该jar的位置。 例如,这个中断:
用相对路径重述:
(使用Java版本“1.60Y27”;通过Ubuntu 12.04上的OpenJDK 64位服务器VM) |
![]() |
17
3
我知道的唯一方法是单独做,例如:
希望能有帮助! |
![]() |
18
3
WEPAPP课程:
|
![]() |
19
2
不是将/*设置为-cp的直接解决方案,但我希望您可以使用以下脚本来稍微缓解动态类路径和lib目录的情况。
为Linux编写脚本,也可以为Windows编写类似的脚本。如果提供适当的目录作为“libdir2scan4jars”的输入,脚本将扫描所有jar并创建一个类路径字符串,并将其导出到环境变量“tmpclasspath”。 |
![]() |
20
1
你需要把它们分别加起来。或者,如果你 真正地 只需指定一个目录,就可以将所有内容都解压到一个DIR中,并将其添加到类路径中。不过,我不建议使用这种方法,因为您可能在类路径版本控制和不可管理性方面遇到奇怪的问题。 |
![]() |
21
1
把jar文件看作目录结构的根。是的,您需要单独添加它们。 |
![]() |
22
1
以适合多个jar和当前目录的类文件的方式设置类路径。
|
![]() |
23
0
我在一个文件夹里有多个罐子。下面的命令对我有用
窗户
编译:
运行:
Linux
编译:
运行:
|
![]() |
24
0
我试图运行Java文件作为jar或类在Ubuntu中。我两个选择都失败了。以下异常是其输出。
或
或
我找到了答案: 我的愚蠢。 第一步:你必须设置相应的Java:我有Java 11,但我设置为Java LIB路径的第八版本! -您可以从这里设置Java版本:
第2步:然后运行以下命令,将路径和文件名更改为相应的路径和文件:
它成功地运行了! |
|
user29759326 · 如何返回递归函数中的最后一个值? 6 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 6 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 6 月前 |
![]() |
rudraraj · java中未声明最终变量 6 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 7 月前 |