Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java类路径意外地找到了一个库_Java_Classpath_Glob - Fatal编程技术网

java类路径意外地找到了一个库

java类路径意外地找到了一个库,java,classpath,glob,Java,Classpath,Glob,假设对joda的任何微不足道的使用,例如 package com.domain.testPackage; public class MyObject { public static void main(String[] args) { System.out.println((new org.joda.time.DateTime()).toString()); } } jar可以通过 File>Export>Java/Runnable Jar>Next>“

假设对joda的任何微不足道的使用,例如

package com.domain.testPackage;
public class MyObject
{
    public static void main(String[] args)
    {
        System.out.println((new org.joda.time.DateTime()).toString());
    }
}
jar
可以通过

File>Export>Java/Runnable Jar>Next>“将所需库复制到子文件夹”

以下两个
java
调用都将运行

java-cp testProject.jar:testProject_lib/'*'com.domain.testPackage.MyObject

java-cp testProject.jar com.domain.testPackage.MyObject

似乎只有第一次运行是正确的。为什么要运行第二次调用


顺便说一句:注意
java
通配符*应该被引用,这样Linux就不会扩展通配符。相反,通配符被逐字传递给
java
,并具有特定于java的含义,即“所有JAR文件”。请注意,它也可以在没有引号的情况下工作。我说你应该引用它,不是说你需要引用。它的工作原理是因为Linux GoLB不太可能找到一个文件名,除其他细节外,它在中间有一个冒号,比如“代码> TestPosij.jar:TestPrimeStudioLb/*< /Cord>”,而“零匹配”的副作用是GLUB方便(或奇怪)?回显整个令牌,
java
将看到回显的令牌,并以java方式对其进行解释。

类路径:。testProject_lib/joda-time-2.9.2.jar


在舱单上找到的。这就解释了。

您在jar文件的清单中指定了主类了吗?我没有显式地创建清单;我只是以所描述的方式使用Eclipse“导出”。但是,我会四处调查。清单包括:
类路径:。testProject_lib/joda-time-2.9.2.jar
这是出乎意料的,但我想是不错的。