2012-05-04 72 views
1

我想用Phantm掃描我的PHP項目。 我下載了release.jar和正在運行:使用phantm掃描PHP項目時出現Java錯誤

java -jar /path/to/my/phantm-1.0.6.jar 

我得到以下異常:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    at phantm.Main.main(Main.scala) 
Caused by: java.lang.ClassNotFoundException: scala.ScalaObject 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    ... 13 more 

我在網上可能是因爲沒有安裝階讀取。 我下載並解壓縮Scala和增加它的路徑對.bash_profile

scala -version 
Scala code runner version 2.9.2 -- Copyright 2002-2011, LAMP/EPFL 

我必須失去了別的東西......我運行OS X獅子。

回答

2

嘗試以下操作:

scala /path/to/my/phantm-1.0.6.jar 

與斯卡拉2.9.2對我的作品。 Phantm文檔不能更新爲Scala的移動(?),因爲Scala類絕對不在該jar中。

另外,您可以指定明確的路徑是Scala運行時(您可能需要將路徑更改爲罐,當然):

java -cp /usr/share/scala/lib/scala-library.jar:phantm-1.0.6.jar phantm.Main 

如果您已經安裝了斯卡拉,雖然,我不沒有看到任何理由喜歡這種方法。

+0

感謝您的回答,它讓我更進了一步,它現在失敗了:線程「main」中的異常java.lang.NoClassDefFoundError:java_cup/runtime/Scanner \t at phantm.phases.ParsingPhase $$ anonfun $ 1 .apply(ParsingPhase.scala:12)... – samo

+0

@samo:在這種情況下,它看起來像jar版本有一些嚴重的問題。我建議從[源](https://github.com/colder/phantm)構建,並可能在那裏提交問題或以其他方式聯繫維護人員。 –

+0

感謝您的幫助,第二個問題是由於缺少JFlex引起的。我寫了解決方案[這裏](http://www.worldgoneweb.com/2012/php-type-mismatch-detection-with-phantm/) – samo