javaを勉強しているものなんですが、
一度コンパイルをしてできたclassファイルから
もとのソースファイルを取り出す(元に戻す)ことは
できるのでしょうか?

なんとなく気になったもので。誰かお願いします!!!!

A 回答 (2件)

完全には無理ですが、


javapコマンド
でできます。
コマンドについての詳細はJavaのドキュメントを参照して下さい。
javap -help
でヘルプも出ます。

他にもきっと逆コンパイルするツールなどあると思います。

あとは自分で作ったものなら構いませんが、
フリーのツールのクラスでも、逆コンパイルすることはライセンス違反になることもあるようなので、そこら辺は充分気をつけて下さい。
    • good
    • 0

Javaに限らず、コンパイルされたプログラムからソースを得ることを「逆コンパイル」いい、昔から行われています。


Javaにも逆コンパイルツールがあり、私は「Jad」を愛用しています。
Jad単体でも使えますが、Eclipseをお使いでしたら、より便利ですよ。

参考URL:http://www.atmarkit.co.jp/fjava/javatips/073ecli …
    • good
    • 0
この回答へのお礼

みなさんありがとうございます!
「逆コンパイル」という言葉があること自体
知りませんでした。検索したら結構出てきますね。
勉強になりました。

お礼日時:2005/04/21 22:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q人民元,ドル,円の為替関係の中で 円の損益分岐点は

7月13日現在
通貨種類   人民元   米ドル    日本円
人民元    1      8.277   0.07608
CNY 米ドル 0.1208     1     0.009192
USD 日本円  13.14    108.8     1
と なっていますが
人民元とドルの為替レートは固定されてますよね
円のレートで人民元に換金する時,いくらのレートまでだったら円が得でいくら以上だとドルが得か
計算書式もわからず 円の損益分岐教えてください。

Aベストアンサー

損益はありません。

利益の出る組み合わせがあったとしましょう。
すると、世界中の金融機関で為替レートの変動を監視しているコンピュータが
瞬時にそれを見つけ出し、資金を移動させようとします。相対的に高い通貨の
レートは下がり、安い通貨のレートは上がります。結果として、為替レートに
よる損益は解消されてしまうのです。

もちろん、通時的な変動によって差益を得ようとするのであれば、一応可能です。
安い時に買った通貨を高い時に売れば差益は出ます。ただ、相対的なものですので、
いくら以上なら得と言うことはできません。

Qコンパイルした後 java (classファイルの名前) が実行できない

すみません。本当につまらない質問かもしれませんが
コンパイルまではDOS窓でできるんですが。できたCLASS
ファイルを java (できたclassファイル名) を実行しよう
としても、
Exception in thread "main" java.lang.NoClassDefFoundError: (できたファイルの名前)
と表示されてしまい、まったく実行できません。
これはどうしたら実行できるのでしょうか?
なお、最新版のSDKとJava 2 Runtime Environmentはインストールしています。
どうかお願いします。

Aベストアンサー

1. .classまでクラスファイル名つけてませんか?
2. カレントディレクトリがclassファイルのある場所にあるかまたはクラスパスがclassファイルのある場所に追加されていますか?
3. クラスファイル名間違ってませんか?
4. CLASSPATHを設定した場合、.(現在のディレクトリ)を指定していますか?
5. 2番目の回答者の方と同じです、ファイル名とクラス名一致してますか?

JDKが古いバージョンの物も必要というのはちょっと聞いたことがないですが・・・。

Q中国人民銀行による為替介入は、どうやって元資金を調達しているのでしょう

中国人民銀行による為替介入は、どうやって元資金を調達しているのでしょうか。
日本の場合は、政府が短期国債や政府短期証券を発行し、その資金で財務省が日銀に委託して日銀が為替介入を行うと聞いております。なぜ短期資金なのかというのもわけがわかりません。まさか、円を売った後2~3ヶ月後に円を買い戻すという話ではないと思いますが。為替介入のたびに国の借金が増えているのでしょうか。一方中国では外貨準備が2.45兆ドルと巨額です。調達する元資金も半端ではありません。中国が日本と同じ方法で行っているとすると、外貨準備が増えると同時に「国の借金」が増えているのでしょうか。

Aベストアンサー

お邪魔します。
補足拝見しました。いゃ~あ、私の想像以上でしたね。実は、中国に為替市場などはほとんど存在しない、と、書きたかったのですが、後で間違いと分かると、大恥をかいてしまいますから自制したのですが。私も、中国政府の、変動率限度調整という言葉に、騙されていました。

>中央銀行が外貨を買い取るということは、その引き替えに新しい人民元が市中に出て行くこと>を意味していて、「お金を刷った」ことになりますね。その総額が約200兆円でしょう。

ただ、これは間違っていると思いますよ。中国国内にいきなり外貨が入ってくるわけではなく、貿易等の商品販売の対価として、外貨が入ってくるわけで、それ以前に、国内的に商品生産のための経費がかかっているはずですね。そこで、対価として入ってきた外貨を中国政府が一手に引き受けて、決まったレートで、中国元と交換しているわけです。なにをするか分からない中国ですが、IMFにも参加しているのですから、無条件で「お金を刷って」市中に放り込むような事は出来ないでしょう。中国の外貨準備は殆んどが米ドルで、それをアメリカ国債にしてもっているはずです。

ご紹介頂いた、大和総研のレポートの最後にこう書かれています。
『付け加えれば、このような中国政府の姿勢を非難するのは的外れである。中
国の漸進主義が、これまで良好なパフォーマンスを示してきたことは事実であ
るし、こと国際資本取引の自由化が慎重に進められるべきことは、アジア通貨
危機の最も重要な教訓の一つだからである。』

日本は戦後、1ドル360円という固定レートで、経済復興の基礎づけを達成しました。確かに多くの人々の努力も見逃せませんが、通貨が安定してたという幸運を見逃す事は出来ません。中国が現在、経済発展のため、自国通貨を安定させる努力を批判するのは、筋違いでしょうね。

いま、IMFが中心となって、世界中で採用されている通貨制度が正しくて、中国のように政府が管理する通貨制度が不正であるという根拠は、何処にも無いのです。それどころか、国際通貨安定のための、IMFを中心とした、現行の通貨制度が、制度疲労に陥っていると、考えた方が良いのではないでしょうか。

経済学に関心を持つ、同学の士に申し上げます。敵は中国でも、中国政府でも、中国国民でもありません。「敵は本能寺にあり」、明智光秀は一先ず敵を見つけたようですが、わたしたちは本当の敵を見つけられるのでしょうか。

再度の回答の必要性があったか、悩むところですが、回答者としてはこの質問からすでに脱線しており、これ以上何も申し上げる事はございません。お気に触りましたら、年寄りの戯言と、スルーしておいてください。宜しくお願いします。

お邪魔します。
補足拝見しました。いゃ~あ、私の想像以上でしたね。実は、中国に為替市場などはほとんど存在しない、と、書きたかったのですが、後で間違いと分かると、大恥をかいてしまいますから自制したのですが。私も、中国政府の、変動率限度調整という言葉に、騙されていました。

>中央銀行が外貨を買い取るということは、その引き替えに新しい人民元が市中に出て行くこと>を意味していて、「お金を刷った」ことになりますね。その総額が約200兆円でしょう。

ただ、これは間違っていると思いますよ...続きを読む

Qソース添付に Thread.class のソースが含まれていません。と

ソース添付に Thread.class のソースが含まれていません。と出ます。

eclipsでデバッグしていると、

ーーー
クラス・ファイル・エディター
ソースが見つかりませんでした
----
ソース添付に Thread.class のソースが含まれていません。
下の「添付ソースの変更」ボタンをクリックすると、ソース添付を変更できます。
ーーーー
と、出てきます。
eclipsは、pleiades-e3.5-phpを使っています。
ヘルプは、jdk-6u10-docs-ja.zipをダウンロードして参照しています。
ヘルプのマージとか必要なのでしょうか?

Aベストアンサー

ソースコードとJavaDocの設定は別になります。
JDKが入れてあるのなら、その中の src.zip というファイルがJREシステム・ライブラリのソースコードです。そうでなければ Oracle のサイトから JDK ソースコードをダウンロードして下さい。
rt.jar などのプロパティーの[Java ソースの添付]でそのパスを設定すればシステム・ライブラリのソースが参照できるようになります。

コメントを日本語化したい場合は下記のサイトが参考になるかと。
http://www.atmarkit.co.jp/fjava/javatips/180eclipse032.html

Q元の切り上げと為替

こんにちは、為替の事で初歩的な質問があります。
中国の元が切り上げられた場合、元円、ドル円やユーロドルはどのように動くのでしょうか?(元円では、元高でいいのでしょうか?)
何かお分かりの方がいましたら教えてください。

Aベストアンサー

いつもの回答で恐縮ですが、欧米人にとっては、人民元も日本円も韓国ウオンも大して変らない存在なのだそうで、アジア通貨高になるはずです。切り上げですから、当然、ドルやユーロに対しても元や円が高くなるでしょう。

私見ですが、中国当局は切り上げはやらないと思います。アメリカの強い要請に対して、のらりくらりとここまで来ています。また、日本が変動相場制で大変な苦しみを味わったのを目にしていますので、のらりくらりが何年も続くでしょう。要請する米国では大統領が変ってしまうし、、、、。日本なら、すぐにもハイそうしますと言ってしまうところです。

Qjavaのソースとclassファイルの単位について

最近JAVAの勉強を始めました。
基礎的なことで恐縮ですが、JAVAのコンパイル単位を知りたいのですが。
一つの*.javaファイルについては、必ず一つのclassファイルができるんでしょうか?
一つの*.javaファイルから、複数個のclassファイルができたり、複数の*.javaファイルから
一つのclassファイルができたりはしないんでしょうか?

まだ、一つの*.javaから一つのclassファイルを作ったことしかないので、
申し訳ないですが、どなたか教えてください。よろしくお願いします。

Aベストアンサー

基本的にファイルには関係なく ソースに有るclassごとに *.class
のファイルができます。
なので、一つのjavaファイルの中に複数のクラス(インナークラスも含め)
が有ればその数分classファイルができます。

ただこれらのファイルを jarファイルにまとめてしまえば *.jar
のファイル一つにもになりますが。
ファイル内に
class クラス名1{
}
class クラス名2{
}

があれば クラス名1.class と クラス名2.class
のファイルが出来ます。

Q円・ドル・元の関係について

最近、また人民元切り上げの話題が盛り上がってきましたね。外国為替証拠金取引でも人民元を取り扱っている業者もあるようです。個人でも切り上げで恩恵を受けることができないか考えています。

そこで質問です。

1.ドル/円レート 106.85円
2. 元/円レート  12.91円
3.ドル/元レート 8.2764元

上のレートで、1=2×3という式がおおよそ成り立ちます。

元が通貨バスケット制だか変動相場制だかに移行したら、3の値が小さくなるというのはわかるのですが、2の値はどうなるのでしょうか。元/円も変動相場制になるのでしょうか?この式がどのように変わっていくことが予想されるのか知りたいのです。

Aベストアンサー

1=2x3という式は不変で、いつの場合でも成立します。もし、ここから大きく外れると、無リスクの裁定取引ができるので為替ディーラーたちが取引を開始し、1=2x3に収束するようになります。

変動相場制に移行した場合でも、1=2×3は不変なので、2は3が大きくなるにつれ小さくなります。元が円に対しても強くなるわけです。

人民元がドルに対して強くなるだろうというのは確からしいとしても、それに向かう過程は一筋縄ではいかないのではと考えています。投機筋の大量の人民元買いや香港ドル買いが起こったら中国当局はどうするのでしょうかね。何らかの移行措置を考えないと、危険なことになると考えるはずでしょう。通貨バスケット制の場合は、人民元は切りあがるわけではないので、この方法を選択するのでしょうか。

私は、先行きがあまりにも不透明なので、やはり通貨それ自体に対する投資は控えたいと思っています。

QClassファイル → Javaソースプログラム

どーも、こんにちは。プログラミング初心者です。

現在Javaを使ってプログラムをしています。
JavaはJavaソースをコンパイルするとClassファイルが生成されるじゃないですか?
では逆に、ClassファイルからもとのJavaソースプログラムに変換する(?)、取り戻すことはできないのでしょうか???

もしかして無理なのかもしれませんが、これが出来ないとどうしていいか分かりません。
どうしても、ソースプログラムが見たいClassファイルがあるのです。
そんな状態なので困っています。
どなたか少しでもご存知の方は、ご一報ヨロシクお願いします!!

Aベストアンサー

プログラムからソースコードを生成するのを「デコンパイル」といいます。そのためのプログラムを「デコンパイラ」といいます。
 現在は、Jadの他にJodeなどのデコンパイラが出ていますし、Jadの応用ソフトもいろいろあるようです。デコンパイラで検索してみるといろいろと見つかりますよ。

参考URL:http://allabout.co.jp/career/java/closeup/CU20051206B/index.htm

Q円ーユーロの為替の計算の仕方

為替の入門書で、

クロス取引ということを学びました。

円ーユーロの為替は、

①円と基軸通貨であるドルとの為替レートを見る、

②そのあとに、ドルとユーロの為替レートを見る、

すると、最終的に、③円とユーロの為替レートが決まるということでしょうか?

世界中のどこでも、円とユーロの為替は、ドルを介して決まるのでしょうか?

Aベストアンサー

>世界中のどこでも、円とユーロの為替は、
>ドルを介して決まるのでしょうか?
まあそうです。

逆な言い方として、
円を軸(中心)にして、レートが
決まると考えてはいけない。
ということです。

為替の基軸通貨は米ドルです。
各通貨は対米ドルとの取引が
主軸であり、対円との取引での
影響の方がむしろ小さいのです。

考え方としては、必ず対ドルの
レートを意識する必要があります。

為替レートの関係性をユーロを
例にして紹介しておきますと。

2017/1/6 18:30現在のレートを
例にすると、
①USDJPY 115.931
②EURUSD 1.05959
③EURJPY 122.839

①×②=③です。
ドル円115.931円の
1.05959倍が
ユーロ円122.839円
というわけです。

この『×』からユーロ円等は
クロス円と呼ばれているのです。

この関係性は常に変わりません。
昔FXのシステムがショボかった頃、
本日10:30にも発表のある
米国雇用統計が発表された瞬間に
①×②の計算に遅延があり、③の
レートが大きくブレることがあり、
それを狙って差益を得られることが
ままありました。
今はシステムの方で抑制され、約定でき
ないようになっています。

また1日でもこの『三角関係』で
どの通貨が動いているのかを
知ることができます。

EURUSD USDJPY EURJPY
④ -   ↑   ↑ 円安
⑤ ↑   -   ↑ ユーロ高
⑥ ↓   ↑   - ドル高

④の動きが東京(日中)時間の動きで、
円を中心に動きとなりやすい傾向は
あります。

⑤は夕方から22時頃までの
ユーロ圏の取引時間の動き

⑥は22時頃からのアメリカの
ニューヨーク取引時間の動き
の傾向はあります。
本日10:30の動きを見てください。
(それぞれ逆方向もあります。)

これに加えて各国の経済動向で
個別の動きもあります。
東京時間も
④の動きだけで見ているだけでは、
理解しがたい動きもあるので、
注意が必要です。

最近のFX業者では対円レートに
絞った画面表示しかしない業者も
ありますが、各国通貨の対ドル
レートも参考にしながらの取引を
することで、為替動向が読み取り
易くなると思います。

いかがでしょう?

>世界中のどこでも、円とユーロの為替は、
>ドルを介して決まるのでしょうか?
まあそうです。

逆な言い方として、
円を軸(中心)にして、レートが
決まると考えてはいけない。
ということです。

為替の基軸通貨は米ドルです。
各通貨は対米ドルとの取引が
主軸であり、対円との取引での
影響の方がむしろ小さいのです。

考え方としては、必ず対ドルの
レートを意識する必要があります。

為替レートの関係性をユーロを
例にして紹介しておきますと。

2017/1/6 18:30現在のレートを
例にすると、
①USDJPY 11...続きを読む

Qservletのコンパイルエラーについて CLASS_PATH Tomcat 5.5.11

Tomcat 5.5.11にてservlets-examplesのサンプルプログラムHelloWorld .javaをコンパイルすると以下のエラーが出ます。
Tomcatは正常に動作していますし、通常のjavaプログラムもコンパイルできます。


HelloWorld.java:3: パッケージ javax.servlet は存在しません。
import javax.servlet.*;
^
HelloWorld.java:4: パッケージ javax.servlet.http は存在しません。
import javax.servlet.http.*;



CLASS_PATH などの設定はいろいろなサイトやここの過去の質問を見たとおりにしましたがなんともなりません。
現在は以下のようになっております。

CLASS_PATH
.;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar

CATALINA_HOME
C:\Program Files\Apache Software Foundation\Tomcat 5.5

PATH
C:\Program Files\Java\jdk1.5.0_04\bin

JAVA_HOME
C:\Program Files\Java\jdk1.5.0_04


もうどうしたらいいのかわかりません。
助言のほうよろしくお願いします。

Tomcat 5.5.11にてservlets-examplesのサンプルプログラムHelloWorld .javaをコンパイルすると以下のエラーが出ます。
Tomcatは正常に動作していますし、通常のjavaプログラムもコンパイルできます。


HelloWorld.java:3: パッケージ javax.servlet は存在しません。
import javax.servlet.*;
^
HelloWorld.java:4: パッケージ javax.servlet.http は存在しません。
import javax.servlet.http.*;



CLASS_PATH などの設定はいろいろなサイトやここの過去の質問を見たとおりにしましたがなんともな...続きを読む

Aベストアンサー

こんちは~

おおよそ2年ぶりにTomcat触りました(趣味でw
最近はservlet.jarじゃなくてservlet-api.jarなんですねぇ。

で、本題なんですが
環境変数名が違うとせいだと思います。

「CLASS_PATH」

ではなく

「CLASSPATH」

です

※「 _ 」がいらない


人気Q&Aランキング

おすすめ情報