質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

2回答

3171閲覧

Jarファイルのデコンパイルしたソースコードがおかしい

somebody

総合スコア11

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2019/06/25 10:59

Jarファイルの中にあるコンパイル済みのライブラリを参照してプログラムを書いているのですが
わけあってコンパイルされたライブラリを読む必要が生じました。
EclipseでJavaを使っているのですがクラスファイルを開くと自動でデコンパイルされた参照ライブラリを見ることができました。

質問1
コードが編集できないので整形できず非常に読みづらいです。
読みやすくしたいのですがどのようにすれば編集可能ですか?

質問2
do-while文がおかしい?
コードがおかしいように思えます。これはどういうことなのでしょうか。
do- while周りのコードが読めないです。

よろしくお願いします。
コードは以下です↓

Java

1/* */ package org.aiwolf.sample.player; 2/* */ 3/* */ import java.util.Iterator; 4/* */ import org.aiwolf.client.lib.Content; 5/* */ import org.aiwolf.client.lib.DivinationContentBuilder; 6/* */ import org.aiwolf.client.lib.EstimateContentBuilder; 7/* */ import org.aiwolf.client.lib.RequestContentBuilder;import org.aiwolf.common.data.Agent;import org.aiwolf.common.data.Judge;import org.aiwolf.common.data.Role;import org.aiwolf.common.data.Species; 8/* */ public class SampleVillager extends SampleBasePlayer { 9/* */ protected void chooseVoteCandidate() { 10/* 10 */ this.werewolves.clear(); 11/* 11 */ Iterator var2 = this.divinationList.iterator(); 12/* */ } j = (Judge)var2.next(); 13/* 13 */ } while(j.getResult() != Species.WEREWOLF); } while(j.getTarget() != this.me && !this.isKilled(j.getTarget())); 14/* 14 */ Agent candidate = j.getAgent(); 15/* 15 */ if (this.isAlive(candidate) && !this.werewolves.contains(candidate)) { while(true) { 16/* 16 */ this.werewolves.add(candidate); 17/* */ Judge j; 18/* */ do { 19/* */ do { 20/* */ if (!var2.hasNext()) { 21/* 21 */ if (this.werewolves.isEmpty()) { 22/* 22 */ if (!this.aliveOthers.contains(this.voteCandidate)) { 23/* 23 */ this.voteCandidate = (Agent)this.randomSelect(this.aliveOthers); 24/* */ 25/* */ } 26/* 26 */ } else if (!this.werewolves.contains(this.voteCandidate)) { 27/* 27 */ this.voteCandidate = (Agent)this.randomSelect(this.werewolves); 28/* */ 29/* 29 */ if (this.canTalk) { 30/* 30 */ this.talkQueue.offer(new Content(new EstimateContentBuilder(this.voteCandidate, Role.WEREWOLF))); 31/* 31 */ this.talkQueue.offer(new Content(new RequestContentBuilder((Agent)null, new Content(new DivinationContentBuilder(this.voteCandidate))))); 32/* */ } 33/* */ } 34/* */ 35/* 35 */ return; 36/* */ } 37/* */ } public String whisper() { } 38/* 38 */ throw new UnsupportedOperationException(); 39/* */ } 40/* */ 41/* */ public Agent attack() { 42/* 42 */ throw new UnsupportedOperationException(); 43/* */ } 44/* */ 45/* */ public Agent divine() { 46/* 46 */ throw new UnsupportedOperationException(); 47/* */ } 48/* */ 49/* */ public Agent guard() { 50/* 50 */ throw new UnsupportedOperationException(); 51/* */ } 52/* */ } 53

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

  • デコンパイルされたソースコードは編集不可能です。
  • デコンパイラの都合で崩れる場合があります。昨今のEclipseではFernFlowrerをデコンパイラに指定して、さらにEclipseのデコンパイラの設定から、「ライブラリ・ソースを自動的に検索して添付する」機能もついていますので、それを有効にすると見やすいコードにはなっているかと思います。

投稿2019/06/25 12:15

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

とりあえず。github があるだろ

コンパイル時最適化されるから人間が読めなくなることなんて多々ある

投稿2019/06/25 14:18

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

somebody

2019/06/26 12:17

ありがとうございます 助かります!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問