スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

「.jar: 許可がありません」というエラー

前回の記事、

Linux OSをクライアントマシンとして使ってみる CentOS5.xにJRE1.6をインストールしてみる

これでようやく、Hello Worldという簡単な処理を実行できるようになったのですが、
jarファイルに対して、クラスパスを設定して実行すると、以下のようなエラーが発生しました。

-bash: ../lib/commons-httpclient-3.1.jar: 許可がありません
-bash: ../lib/commons-logging-1.1.1.jar: 許可がありません
-bash: ../lib/jakarta-oro-2.0.8.jar: 許可がありません
-bash: ../lib/mysql-connector-java-3.1.14-bin.jar: 許可がありません
-bash: ../lib/xmlrpc-2.0.jar: 許可がありません


これには次のような原因がありました。

下記コマンドが実際のコマンドですが、Windowsなら上記のようなエラーは出ません。というのも、Windowsのコマンドプロンプトにおけるクラスパスの区切り文字はセミコロン「;」ですが、CentOSというかLinuxにおけるクラスパスの区切り文字はコロン「:」のようです。
java -cp ../lib/commons-codec-1.3.jar;../lib/commons-httpclient-3.1.jar;../lib/commons-logging-1.1.1.jar;../lib/jakarta-oro-2.0.8.jar;../lib/mysql-connector-java-3.1.14-bin.jar;../lib/xmlrpc-2.0.jar practice.HelloWorld

-コマンド1.エラーを出力するコマンド-

では、コマンド1の区切り文字をコロンに直せば解決か?というとそうではありませんでした。このクラスパスの設定方法には、もう一つ誤りがあり、カレントディレクトリすなわちHelloWorldクラスのクラスパスが抜けています。これは単に、「.」というパスを追加するだけなのですが、1文字の為、見落としやすいです。

ということで、正しくは下記コマンドのようになります。
java -cp .:../lib/commons-codec-1.3.jar:../lib/commons-httpclient-3.1.jar:../lib/commons-logging-1.1.1.jar:../lib/jakarta-oro-2.0.8.jar:../lib/mysql-connector-java-3.1.14-bin.jar:../lib/xmlrpc-2.0.jar practice.HelloWorld
-コマンド2.正しいコマンド-

※記載のコマンドは見やすくする為に、テキストエディタ等にコピーすると良いかもしれません。
このエントリーをはてなブックマークに追加

コメントの投稿

非公開コメント

プロフィール

白鯖

Author:白鯖
安い寄せ集めの部品で構築し、CentOS5をインストールしました。主に、Webサーバ、アプリケーションサーバとして運用中。ハードの知識はあまり無いプログラマですが、全部自前で作るのは、手間はかかるけど、レン鯖より面白いです。

ハードウェア構成

カテゴリー
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
Max TDP控え目なCPU
安くて静音なクーラー
検索フォーム
ユーザータグ
RSSフィード
はてな
スポンサード リンク
おすすめ書籍
twitter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。