2012-04-22 77 views
1

我想查一些SNMP例子,所以SNMP4J.jar - 拋出java.lang.ClassNotFoundException

  • 我已經下載使用javac -cp snmp4j.jar SNMP.javasnmp4j.jar
  • 編譯SNMP.java(沒關係)
  • 試圖使用java -cp snmp4j.jar SNMP啓動它,但

它報告:

[email protected]:~/workspace_c/SNMP# java -cp snmp4j.jar SNMP 
Exception in thread "main" java.lang.NoClassDefFoundError: SNMP 
Caused by: java.lang.ClassNotFoundException: SNMP 
    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:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
Could not find the main class: SNMP. Program will exit. 

UPDATE: 當我導入snmp4j.jar到Java項目,它在ECLIPSE正常工作......

UPDATE @ 2:SNMP.java

import org.snmp4j.CommunityTarget; 
... 
public class SNMP { 
    public static void main(String[] args) { 
    ... 
    } 
} 

主要部分是什麼我做錯了?這是我第一次遇見snmp4j所以我知道注意一下

+0

是類'一些包的一部分SNMP'? (它裏面有'package'聲明嗎?)這可能是你得到這個錯誤的原因。 – 2012-04-22 08:19:38

+0

不,它不是....:/ snmp4j.jar和SNMP.java都在一個文件夾中,SNMP.java沒有包語句 – gaffcz 2012-04-22 08:31:56

回答

3

如果我理解正確,SNMP是您的示例類,它不在jar中。在這種情況下,你需要添加到類路徑都罐子和當前目錄:

java -cp .:snmp4j.jar SNMP 
+0

不,SNMP.java是使用snmp4j.jar中的方法的分隔類 – gaffcz 2012-04-22 08:37:47

+0

這正是我所說的。請嘗試我建議的命令行並告訴我們它是否作品 – 2012-04-22 08:38:42

+0

aha「不在裏面」,它真的有用!非常感謝:-) – gaffcz 2012-04-22 08:42:37

1

至於我可以看到你正在試圖用SNMP4J.jar(大寫),但是當你編譯應用程序,你可能使用小寫版本上運行你的應用程序。 您的提示顯示您正在使用具有區分大小寫文件系統的unix操作系統。因此,請檢查JAR文件名的大小寫。我相信所有信件都是小寫的。

+0

我很抱歉,我合併了兩個我的問題 - 問題是不區分大小寫的linux環境。我更新了我的問題..再次抱歉:( – gaffcz 2012-04-22 07:35:48

相關問題