CLASSPATHにjarファイルを追加することはまだ実行可能ではありません


0

多分私は全体がどのように理解していないのか CLASSPATH システム上で.jarファイルを見つけようとすると、環境変数が機能します。指定すれば、.jarファイルを次のようにして起動できます。 java あなたのパス上にある実行可能ファイルを起動することができるのとほぼ同じ方法で。

実行可能なJavaアーカイブがあります( .jar 私のシステム上で、私は立ち往生している)ファイル) /usr/local/bin/gatk/。これを私に追加しました CLASSPATH 経由:

export CLASSPATH=/usr/local/bin/gatk/GenomeAnalysisTK.jar

私はこれがになるだろうと思った .jar 私のJVMに見えるファイル。で起動しようとすると

java -jar GenomeAnalysisTK.jar
#Error: Unable to access jarfile .gatk/GenomeAnalysisTK.jar

絶対パスを設定して呼び出すことができます。
java -jar /usr/local/bin/gatk/GenomeAnalysisTK.jarただし、毎回フルパスを入力したくはありません。私はリンクされたチュートリアルの多くを読みましたが、どういうわけか私はこれを正しくしているようには思えず、私が何を間違っているのか理解できません。

回答:


3

CLASSPATH jarを検索するためのものではありません。クラスを検索するためのものです。中に瓶を入れる CLASSPATH Javaがクラスを見ることを意味します 内部 瓶だが瓶自体ではない。

あなたが欲しいのは、おそらくjarファイルを起動するシェルスクリプトラッパーです。

次の行を含むテキストファイルを作成します。

#!/bin/sh
java -jar /usr/local/bin/gatk/GenomeAnalysisTK.jar

ファイルを実行可能にします(名前を付けます) GenomeAnalysisTK ):

chmod +x GenomeAnalysisTK

そのファイルを /usr/local/bin または ~/bin またはパスがあなたの中にある限り、あなたが望むところならどこでも $PATH

これからはシェルスクリプトを呼び出してjarを起動します。台無しにする必要はありません CLASSPATH もう。


あるいは、クラスパス内のjarを使用して、次のようにjar内からメインクラスを起動できます。

java org.broadinstitute.sting.gatk.CommandLineGATK

jarファイルのメインクラスはファイルで指定されています META-INF/MANIFEST.MF 瓶の中。詳細については jarファイルに関するウィキペディアの記事


どうもありがとう。私は夢中になりました。私はJavaベースのプログラムを使った経験があまりないので、とても助かります。
Simon O'Hanlon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.