2017-02-10 2 views
0

Javaプログラムの実行に問題があります。 "/apps/somefile"場所からいくつかのファイルへのFileInputStreamを開き、jarファイル内のコードの行がありますJavaプログラムでバックスラッシュが指すルートディレクトリを変更します。

は、しかし、私は、ルートディレクトリへのアクセス権を持っていません。

問題は、Javaプログラムを実行しているときに、"/"が指すルートディレクトリに変更するためにjarファイルで提供されるため、コードを変更できないということですか?

はここで参照のためのラインです:

FileInputStream fileInputStream = new FileInputStream("/apps/somefile"); 

答えて

0

あなたはそのジャーに逆コンパイラを行う必要があります。 http://jd.benow.ca/

次に、InputStreamを持つクラスを変更してから、再度コンパイルしてJarファイルを作成する必要があります。

3

あなたが提示したコード行は何もしません直接。これはJavaのソースコードであり、Javaは通常、バイトコードにコンパイルされ、その形式でJVMに提示されます。あなたのjarファイルには、コンパイルされたクラスファイルとともにソースファイルが含まれていることがあります。そうであれば、jarからJavaソースを解凍し、変更し、再コンパイルし、結果から新しいjarを作成するだけです。

ソースがない場合は、別の答えが示すように、逆コンパイルを試みることができます。それはちょっと厄介ですが、おそらくうまくいくでしょう。

また、あなたが実際に聞いて何

は、ルートディレクトリにJavaプログラムを実行するときにその「/」のポイントを変更するにはとにかくされているのですか?

実際には、コードが実行されているシステムによっては、あるかもしれません。 chrootの下であなたのプログラムを実行することができます。しかし、あなたはルートディレクトリにアクセスできない場合はどうすればよいでしょうか(その場合は何か)、十分なアクセス権がない可能性があります設定するか、またはchroot環境を使用してください。

関連する問題