2012-06-05 37 views
2

查询我的文件夹中:撒克逊9.4从cygwin的

/cygdrive/d/ragsxq其中我遵守一些简单的X查询支杆经由撒克逊X-查询引擎执行...(撒克逊9.4 HE)

下面的语句:

$ java -classpath /cygdrive/d/saxon/saxon9he.jar net.sf.saxon.Query -q:ragsXQuery.xq 

给出:

java.lang.NoClassDefFoundError: net/sf/saxon/Query Caused by: 
java.lang.ClassNotFoundException: net.sf.saxon.Query at 
java.net.URLClassLoader$1.run(Unknown Source) at 
java.security.AccessController.doPrivileged(Native Method) at 
java.net.URLClassLoader.findClass(Unknown Source) at 
java.lang.ClassLoader.loadClass(Unknown Source) at 
sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at 
java.lang.ClassLoader.loadClass(Unknown Source) Could not find the main class: 
net.sf.saxon.Query. Program will exit. Exception in thread "main" 

但低于stateme nt工作正常:

$ java -classpath ../saxon/saxon9he.jar net.sf.saxon.Query -q:ragsXQuery.xq 

?!?!

与类加载器有关。 Permmissions ?? Cygwin?嗯...


非常感谢您指出这个Cygwin行为!

但奇怪的是,当我尝试在Mac OS Lion上通过Eclipse(Indigo)运行Xquery时,遇到此java.lang.NoClassDefFoundError(与上述完全相同)...通过XQDT plugin,我有通过提供saxon9he.jar的全路径配置XQuery引擎&主要类即net.sf.saxon.Query

请注意,Windows-XP上的类似设置工作正常。

这一次,我想这可能是一些Classpath问题或Mac OS的Java对待事物的方式不同?

回答

3

我想我以前曾经遇到过这个。这可能是Cygwin的细微差别。刚刚尝试

$ java -classpath `cygpath -m /cygdrive/d/saxon/saxon9he.jar` net.sf.saxon.Query -q:ragsXQuery.xq 

这里是一个可能的解释,为什么:

http://cygwin.com/ml/cygwin/2008-01/msg00083.html

下面是我的Cygwin的输出为可执行的JAR文件。我使用Windows Vista 32位(我知道,它很糟糕)。

adarshr$ java -jar /cygdrive/d/adarshr/data/cf.jar 
Error: Unable to access jarfile /cygdrive/d/adarshr/data/cf.jar 
adarshr$ 
adarshr$ java -jar `cygpath -m /cygdrive/d/adarshr/data/cf.jar` 
Usage: java -jar cf.jar SEARCH [DIRECTORY] [OPTIONS]... 
Try -h or --help for more information 

正如你所看到的,第二个命令的工作和打印帮助(如预期)。