2015-09-18 56 views
1

據說Java無論OS如何都是可移植的。但這裏是我的疑問: 爲什麼java提示在Windows中完美工作,但在我的情況下,無法執行java提示。在Windows上工作但不在Ubuntu上的Java提示符

我的文件夾結構如下:

 
c: 
--|temp 
-----|JavaSDKv2 
--------|com 
-----------|impinj 
--------------|octanesdk 
-----------------|samples 
--------------------|(.java files) 
--------------------|(.class files) 
--------|OctaneSDKJava-1.20.2.240-jar-with-dependencies.jar 

實施例: (在Windows 8,在cmd)

 
    C:\temp>cd JavaSDKv2 
    C:\temp\JavaSDKv2>javac com\impinj\octanesdk\samples\*.java -classpath  OctaneSDK 
    Java-1.20.2.240-jar-with-dependencies.jar 

    C:\temp\JavaSDKv2> 

(因此沒有定義的錯誤,並用一類每個Java文件具有現在是.java文件中定義的每個類的.class文件)

 




C:\temp\JavaSDKv2>java -Dhostname=192.168.2.203 -classpath OctaneSDKJava-1.20.2. 240-jar-with-dependencies.jar;. com.impinj.octanesdk.samples.RfDoppler 
Connecting to 192.168.2.203 
log4j:WARN No appenders could be found for logger (org.apache.mina.filter.execut or.ExecutorFilter). 
log4j:WARN Please initialize the log4j system properly. 

Press Enter to exit. 
EPC: 0100 0000 0000 9950 0000 0000 Reader_ip: 192.168.2.203 doppler: .5625 

EPC: 0100 0000 0000 9950 0000 0000 Reader_ip: 192.168.2.203 doppler: 3.0 

EPC: 0100 0000 0000 9950 0000 0000 Reader_ip: 192.168.2.203 doppler: -6.6875 

(a nd這個沒有任何問題)

然後我使用Ubuntu(在虛擬盒)。我檢查連接。

 
    [email protected]:~/temp/JavaSDKv2$ ping 192.168.2.203 
    PING 192.168.2.203 (192.168.2.203) 56(84) bytes of data. 
    64 bytes from 192.168.2.203: icmp_seq=1 ttl=63 time=2.56 ms 
    64 bytes from 192.168.2.203: icmp_seq=2 ttl=63 time=1.64 ms 
    64 bytes from 192.168.2.203: icmp_seq=3 ttl=63 time=1.56 ms 
    64 bytes from 192.168.2.203: icmp_seq=4 ttl=63 time=1.34 ms 
    64 bytes from 192.168.2.203: icmp_seq=5 ttl=63 time=1.60 ms 

我確認Java版本(Java的版本)

 
[email protected]:~/temp/JavaSDKv2$ java -version 
java version "1.7.0_79" 
OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-0ubuntu1.14.04.1) 
OpenJDK Client VM (build 24.79-b02, mixed mode, sharing) 
 

[email protected]:~/temp/JavaSDKv2$ javac com/impinj/octanesdk/samples/*.java -classpath OctaneSDKJava-1.20.2.240-jar-with-dependencies.jar 
[email protected]:~/temp/JavaSDKv2$ 

(這創建.class文件)

 

[email protected]:~/temp/JavaSDKv2$ java -Dhostname=192.168.2.203 -classpath OctaneSDKJava-1.20.2.240-jar-with-dependencies.jar com.impinj.octanesdk.samples.RfDoppler 
Error: Could not find or load main class com.impinj.octanesdk.samples.RfDoppler 
[email protected]:~/temp/JavaSDKv2$ 

奇怪的Java沒有找到任何類型的.class文件。 我的猜測是與包相關的東西。 當然,如果有人編寫helloworld.java代碼並執行helloworld.class,您會看到「Hello,World!」

回答

0

在Ubuntu默認的classpath中不包含當前目錄,所以試試這種方法:

[email protected]:~/temp/JavaSDKv2$ java -Dhostname=192.168.2.203 -classpath OctaneSDKJava-1.20.2.240-jar-with-dependencies.jar:. com.impinj.octanesdk.samples.RfDoppler

+0

謝謝工程.... –

相關問題