[英]running a java program in linux
我試圖在Linux環境中運行Java程序。 該程序的結構如下。
src(目錄)
主(目錄)
-test.java
普通(包裝)
-一個Java
-b.java
Test.java是我的主程序。
我使用以下命令從src目錄級別運行該程序。
javac -cp“ ../../lib/netcdf.jar:/common/*.java” main / test.java
我收到與找不到包通用包相關的錯誤,並且找不到它下面的所有類。
你能幫我解決這個問題嗎?
謝謝
Java不會擴展glob( *
),除非它是路徑的唯一的最后一部分(在這種情況下,它會擴展到所有jar文件)。 已經有一段時間了,但是我相信您應該可以完全不使用*.java
( -cp "../../lib/netcdf.jar:common"
)。 看來您在使用/common
,這會使它在系統根目錄中查找一個名為common
的文件夾。
這里有一些問題。
首先,javac在類文件(.class)中編譯您的代碼。 它不運行代碼,而是將源代碼轉換為可以運行的形式。
編譯代碼時,所有.java文件都應根據其包進行結構化。 因此,您不能隨意決定將某些Java文件放在一個文件夾中,而將某些Java文件放在另一個文件夾中。 例如,如果一個Java文件指定“ package com.mycompany”,而您的src目錄指定為src,則該Java文件必須位於“ / src / com / mycompany”中。
在您的代碼中,當您需要引用已經編譯成.class文件的其他代碼(通常是外部庫)時,可以指定類路徑 (這就是為什么要這樣稱呼)的原因。 注意,為清楚起見,我將重復此操作,這不是針對.java文件,而是針對.class文件。 有時,許多.class文件會打包在一起,形成一個存檔文件,稱為Java存檔或“ jar ”。
還要注意,在unix系統上,“ / common”是絕對路徑 。 如果需要相對路徑,則應指定“ ./common”。
此外,類路徑分隔符為“;” 不是“:”。
因此,總而言之,如果您的java文件均未指定顯式包,只需將所有.java文件放在同一目錄中(我建議使用./src)。 然后從src目錄運行javac -sourcepath ./src *.java
或僅運行javac *.java
。
這里還有更多有關管理源文件和類文件的信息 。
我使用以下命令編譯並運行了它
javac -classpath'。:../../ lib / *'main / test.java
java
java
javac
appletviewer
md arivu
cd arivu
gedit ex.java
javac ex.java
java ex
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.