トップページ⇒tech
103コメント24KB

Javaアプリケーションを実行形式で配布するには

■ このスレッドは過去ログ倉庫に格納されています
0001別スレの83NGNG
作成したJavaアプリケーションを実行形式で配布するにはどうしたら
よいかについて情報を共有しましょう。
0002別スレの83NGNG
(1)JREのインストーラも一緒に配布する(欠点:サイズが大きくなる)
(2)IEに付属しているMS-VMを使う(欠点:非互換,JDK1.1ベース、将来なし)
(3)ネイティブコードにコンパイルする(コードサイズ大)
(4)http://java.sun.com/products/jdk/1.1/jre/example/ の方法を使う((1)の変形、1.1ベース?)。

(4)の方法はsunのサイトを探していてたどり着きました。Win32は1.1ベースなのですが、
他のOSでは、Java2用も用意されているようです。Windowsでもきっとなんとか
なりますよね。Tru64 UNIX
http://www5.compaq.com/java/documentation/1.2.2/unix/jre/jre122_example.html
OpenVMS Alpha
http://www.digital.com/java/documentation/1.2.2/ovms/jre/JRE122_EXAMPLE.HTML
0003デフォルトの名無しさんNGNG
JAVAアプリなんて配布されても迷惑、
遅いし不安定だし見た目もダサい。
0004デフォルトの名無しさんNGNG
Visual Cafe 買ってexeにする。(VM無しでも可だと思う)
jexegenでバイトコード固める。(VM必要)
0005デフォルトの名無しさんNGNG
拾い貪りするまえに「それが何か」の判別もできんのか、おまえ >>3
0006デフォルトの名無しさんNGNG
>>3 は煽りだから気にする必要はないと思うが、
一応↓この辺を、見てから出直してこいと言っておこう。
http://www.komplex.org/java.html
0007デフォルトの名無しさんNGNG
VisualCafeはExpertEdition以上じゃないとWin32アプリは作れないからな。
俺はそれで失敗した。それから、VCで作ったアプリは、
Nativeアプリを動かすためのDllを配布先のコンピュータにインストールしないといけない。
DllセットアッププログラムはVisualCafeのCDに入っているが、
10M近くあるのでそう簡単に配布こともできない。

よって、JAVAはゲリ糞。
0008( ´〜`)NGNG
Javaでどうやってアプリケーションを作るのでしょうか?

知恵遅れと言われてもかまわないので教えてください。
0009hageNGNG
良いこのJavaアプリケーション講座初級編。

クラスに以下の関数を埋め込む。
static void main(String args[]){}

コンソールで、メインが入ってるクラス指定して起動。

hoge.classにmainを書いたのなら、
java hoge で起動。hogeに書いたmain()が最初に動く。

なれてきたらjar(JAVAアーカイブ。調べてみそ)巧く作れば、
WINDOWSならそのファイルダブルクリックすれば起動できるようになるよ。
あと、package命名とclasspathには気をつけようね。
0010デフォルトの名無しさんNGNG
>>8
アプレットウィンドウの変わりに、
JWindomやJFrameに部品を置いて作るだけだよ。
で、java.exeで動かすだけ。VisualCafeとか使えば簡単。
0011デフォルトの名無しさんNGNG
>>7
素直にJREにしとけってことだぁね。
0012デフォルトの名無しさんNGNG
iアプリはどうやってはいふするんだい?
0013デフォルトの名無しさんNGNG
>>12
Docomoの公開資料を見なさい。
0014( ´〜`)NGNG
>>9-10
ありがとうございました。
よくは分かりませんがいろいろとがんばってみます。
すれ違いな質問をしてすいませんでした。
0015デフォルトの名無しさんNGNG
相手がJavaインストールして無くても起動させることは
出来ないのか?
JARアーカイブを使う方法ならできるのか?
0016デフォルトの名無しさんNGNG
ムリムリ
0017デフォルトの名無しさんNGNG
>>15

Java Web Start を入れさせなさい。(って結局Javaのインストールだ)
0018名称未設定NGNG
Java派だったけど……、
こういうことが簡単にできないのでMSに完全に負けちゃうでしょう。
C#に逝ったほうがいいんだろーね。
0019デフォルトの名無しさんNGNG
出来るけど、あまりおおっぴらにしてないだけです。1の(4)とその例
を見てみればわかるよ。
0020デフォルトの名無しさんNGNG
Javaのアプリケーション入れると、今までの環境をぶち壊すのがあるのがむかつくね。
手軽な配布の方法があるといいのだけど。
0021デフォルトの名無しさんNGNG
>20
違います。Javaが環境を壊す事はまずないです。
VMは独立したアプリケーションで、レジストリになんかしたりSystem
ディレクトリに何か上書きしたりはしないはずです。VBじゃないんだから。

ただ、95や98だとSunのJavaVMを起動するときにWindowsのOSのバグの
せいでVMが落ちる事が有ります。WindowsUpdateの重要な更新だけでは
不足です。IMEも更新してください。

このバグは、MSが確信犯で仕込んだのか?と思うことがある。
0022デフォルトの名無しさんNGNG
いや、JavaアプリのインストーラがWindowsの環境を壊すことは
あるよ。JREを勝手にインストールしたりするし。たぶん20が言
っているのはそのことだろう。悪いのはインストーラ。
0023デフォルトの名無しさんNGNG
Netscape6を入れたら1.3.0_01にされて
ムカついたのは私だけではないと思う。
0024デフォルトの名無しさんNGNG
今のところ2の(4)が一番有望そうだけど、これは相手の環境を選ばず、環境破壊
もないの?
0025デフォルトの名無しさんNGNG
javaで複数のバージョンを両立させることはできるの?
0026名無しさんダーバードNGNG
しないよ。もちろんインストーラがクズなら壊すけど。
0027デフォルトの名無しさんNGNG
>>25
JREを入れないでJDKだけ入れとけば
PATH環境変数(必要ならCLASSPATHも)切り替えるだけでOK
いつも互換性チェックでやってるよ
0028デフォルトの名無しさんNGNG
20, 22ってバカ?

JREが入る程度を「Windowsをぶっ壊す」だとよ(w
0029デフォルトの名無しさんNGNG
>>28同意
VBのランタイムのアップデートの恐ろしさに比べれば、、、
0030デフォルトの名無しさんNGNG
つかなんで JRE プリインストールしないんだろ PC メーカは。
圧力?
0031デフォルトの名無しさんNGNG
>圧力?

でしょね。
「ネスケ入れるな」と同じね。
003220NGNG
>>28
日本語読めないのか?
Windowsをぶっ壊すなんてどこにも書いてないぞ。
勝手にJREをバージョンダウンさせられたりするんだよ。
今までのソフトが動かなくなって、十分環境破壊だ。
0033デフォルトの名無しさんNGNG
>>30
サンがあほだからです。
JDKでもJREでもいっぱいばらまけっちゅーに。
javanc作れ。標準化もしろ。

……そんなこんなでみなさんC#へ逝かれるようです。
0034デフォルトの名無しさんNGNG
jazillaはバッチでインストールさせてた。
どっちにしろJDK1.3入れてクラスパス指定なんて
初心者にできるかfヴぉけえ!!

だれかこの糞ブラウザつかったことあるひといる?
GUIは結構充実してんだけど(笑
0035デフォルトの名無しさんNGNG
JavaコンパチのC++のクラスライブラリ(Win32API使用)って需要あるんでしょうか?
MFC使うのがいやで作り始めたんですが、まだ実用には程遠い…
0036デフォルトの名無しさんNGNG
>>35

今あるんだったらうれしいよ。
C#が出るまでにがんばれよー。


0037デフォルトの名無しさんNGNG
>>35
今はWTLでそれなりに満足してるけど、.netで使えなくなる
らしいから、あると嬉しいとおもう。
003835NGNG
>> 36, 37
C#が出たら洋ナシになるんじゃないかと
ちょっとびくびくしてるんですが、
とりあえず自分の勉強にもなるんで
完成までがんばってみます。
0039デフォルトの名無しさんNGNG
C++は言語として汚いので、Cで作り直してください。>38
004035NGNG
ちなみに、こんなコードがC++でかけます…
class Application : public Main, public Frame, public WindowAdapter {
public:
Application(void) {}
virtual void main(void) {
create(this);
setTitle(APPLICATION_TITLE);
setSize(640, 480);
moveCenter();
addWindowListener(this);
show();
while(isAlive()) {};
}

virtual void windowClosing(WindowEvent e) {
exit();
};
};
どう?
やっぱり多重継承がダサいか…
004140NGNG
ごめん、すみった。
スペースはつぶれちゃうのね…
004239NGNG
おいらのスキルじゃCで同じもんは書けません。
すみません。逝ってきます。

004335NGNG
↑は35です。
まちがえました。39さんへのお返事ね。
なんか、今日はぼけてるらしい…
鬱だ…
0044デフォルトの名無しさんNGNG
>35
C++なんだから書けるのは仕方ないけど、利用のガイドラインか
何か作って、そんな継承書かないようにさせたほうが良さそうだね…

ルートになるスーパークラスは共通なんでしょ?
委譲でやらせるようにしないと、処理系依存の妙な動作する
ことがあるかも。
0045名無しNGNG
Java Fundaitonを無料で手に入れられる方法をおしえて
おねがい♪

004635NGNG
>44
貴重なご意見ありがとうございます!
とりあえず、ListenerやAdapterはObjectを継承しない
というので逃げてたんですが、やはり多重継承は
なるべく避けるべきですね…
Javaで多重継承をわざわざ避けているのにここで
持ち込むのはナンセンスな気もします。
(処理系によっては動作が怪しいのですか…)
委譲するというのがスマートですね。
Frameを継承したクラスを作って、MainやらListener
を持たせればいいのかなぁ。
0047デフォルトの名無しさんNGNG
あげい!
0048デフォルトの名無しさんNGNG
Javaで作ったソフトなんか誰もつかわねぇからさっさと寝ろ
0049デフォルトの名無しさんNGNG
Cで作ったソフトなんか誰もつかわねぇからさっさと寝ろ!

かつて、先見性の無い凡人がこう言っていたそうです。
0050デフォルトの名無しさんNGNG
「PCでUNIXなんて動かして、なんか意味あんのかね。ププ」
0051デフォルトの名無しさんNGNG
「このコンピュータって機械は、世界で5台しか売れないね - IBM創始者」
0052デフォルトの名無しさんNGNG
「ばぁ〜か。女になんか興味ね〜よ! - 中学時代の俺」

人の心は変わるものです。
ハァハァ
0053デフォルトの名無しさんNGNG
「死体画像なんて集めてる奴なんてマジで病んでる。人間不信。ーネット始めた頃の俺。」

人の心は変わるものです。
ハァハァ
0054デフォルトの名無しさんNGNG
で、結局答えは「無理」でOK?
0055デフォルトの名無しさんNGNG
>>35
40見て感動。ソースあぷ、きぼーん。
005655NGNG
メモリ管理どうやってるのか解説してほしい。マジで。
0057デフォルトの名無しさんNGNG
ハア?
>>54
0058デフォルトの名無しさんNGNG
>>57
今までの話をまとめると、
(1)JREも一緒に配布する→サイズがでかすぎる。環境いじる。
(2)IEに付属しているMS-VMを使う→JDK1.1ベースだから使い物にならない。
(3)ネイティブコードにコンパイルする→相手の環境にDLL必要。
(4)Jarアーカイブ→相手の環境にJava必要。
結論:無理。

違うのか?
0059初期不良NGNG
別の Java スレッドでいつか書かれてた気がするけど、
http://www.excelsior-usa.com/jet.html
他の処理系並の速さのコードを吐くらしいから、
高そーとは思ってたけど、$1000 するのね。
そりゃ Java で楽々高速アプリが作れちゃったらねぇ
0060デフォルトの名無しさんNGNG
クラス配るのあきらめて、Webアプリケーションにしたらー?
0061デフォルトの名無しさんNGNG
>>60
Webアプリケーションってなんですか?
実行形式の代替になる物なんですか?
0062デフォルトの名無しさんNGNG
要は、ネット経由でほぼ全てを鯖にやらせるアプリの事じゃない?
アドレスだけ送れば
確かにアプリを配る必要無いよな(笑)
0063名称未設定NGNG
>>61
できることは限定されるので実行形式の代替にはならない。
0064デフォルトの名無しさんNGNG
http://www.atmarkit.co.jp/fjava/products/vcafe4/vcafe4_0.html
0065デフォルトの名無しさんNGNG
とうとつにあげ
0066デフォルトの名無しさんNGNG
がいすつ?つかいかたよくわかんない
http://www.vector.co.jp/soft/win95/prog/se104896.html
0067デフォルトの名無しさんNGNG
Javaアプリ書くほど不毛なこと無いな
0068デフォルトの名無しさんNGNG
Javaは永遠に不滅です。
0069デフォルトの名無しさんNGNG
うんと。
最近はサーバ側でJavaバイナリを動かすのが主流じゃなかった?
0070デフォルトの名無しさんNGNG
詳しくきぼーん
0071デフォルトの名無しさんNGNG
実行あげ
0072デフォルトの名無しさんNGNG
みんな人にJavaあげるときどうやってあげるの?
0073無党派さんNGNG
>>72
IEインストールされてれば大丈夫だと思うんで
それだけ確認してからjarかなんかにしとけばダブルクリックでいけるし
0074デフォルトの名無しさんNGNG
そういや、WindowsXPのβ2、Microsoft VM入ってます?
誰か確認できんもんじゃろか。
0075デフォルトの名無しさんNGNG
Microsoftは機会があるごとにJavaをつぶそうとすると思われるので、
少なくともWindowsネイティブでJavaをやるのは将来性に不安があるな。
0076デフォルトの名無しさんNGNG
jarにしとけばダブルクリックでOKってこと?
0077デフォルトの名無しさんNGNG
>>76
下記参照でjarファイル作れ。
そうすれば[[JDKかJREがいんすとーるされているWinでは]]ダブルクリックで起動する。
後半の「マウス右クリックメニューでJavaアプリケーションを起動しよう!」
からうしろはやらなくてもそのままダブルクリックするだけで良い。(ふるいJDKでは必要)
ttp://ymizoguchi.hoops.ne.jp/tips.html
0078デフォルトの名無しさんNGNG
↑サンクスコ!
サソークトラーイ!!
0079デフォルトの名無しさんNGNG
 こんなものがありますが・・・・
http://www.excelsior-usa.com/jet.html
 JET Java native code compiler
 ”かの”吉田某氏の記事で知りました(笑)。
 なんでもJavaバイトコードをクラスライブラリーごとネイティブにコンパイル
してWindows exeを生成するとか・・・・。
 当方、未体験でゴメンナサイ
0080デフォルトの名無しさんNGNG
サンクスコ アゲイン!!

jarできたよ!!
あとは友達に送りつけて試してもらうだけだ!

上の奴もつかってみるね
0081デフォルトの名無しさんNGNG
ウゲーゲー
高いよう
http://www.excelsior-usa.com/jetpurchase.html
0082デフォルトの名無しさんNGNG
VJ++なら簡単にExeに変更できるよW
0083デフォルトの名無しさんNGNG
マジで?でもJDKのバージョンどーなの?
0084デフォルトの名無しさんNGNG
guavaもネイティブコンパイラだな。
0085デフォルトの名無しさんNGNG
http://www.asahi-net.or.jp/~dp8t-asm/java/guide/javaLanguage.html

Javaの性能を向上させるための方策として以下のような試みが行われている。

ネイティブコードを生成するコンパイラ
JavaソースコードをCに変換するトランスレータ(guava)
Javaの中間コードをネイティブコードに変換するコンバータ(kaffe)
0086デフォルトの名無しさんNGNG
そっそっそらりす?

http://www-personal.engin.umich.edu/java/
00871NGNG
sub age(){
   $age='age!!!';
   return $age * 10000;
}
&age();
0088デフォルトの名無しさんNGNG
sub age(){
   $age='age!!!';
   return $age * 10000;
}
&age();
0089デフォルトの名無しさんNGNG
>82
VJ++じゃなくて、sdkがあれば十分。
microsoftのサイトで落とせる。
0090デフォルトの名無しさんNGNG
>89
sdk for javaってやつ?
0091デフォルトの名無しさんNGNG
チェキチェキ
0092デフォルトの名無しさんNGNG
シスプリヲタUZEE
0093デフォルトの名無しさんNGNG
age
0094デフォルトの名無しさんNGNG
agee
0095デフォルトの名無しさんNGNG
SDK for Java マイクロシャフトのサイト
http://www.microsoft.com/java/sdk/default.htm

みんなでやろうぜ!!
0096デフォルトの名無しさんNGNG
だれか15万のサイト割れてください
0097デフォルトの名無しさんNGNG
あげ
0098デフォルトの名無しさんNGNG
SDK for Javaでどうやってexeファイルにするんだ?
0099デフォルトの名無しさんNGNG
なんとかexegenみたいな.exeファイルない?
そいつでできるはず。
0100デフォルトの名無しさんNGNG
どーするよ
モーニング娘なめとんのかー
0101デフォルトの名無しさんNGNG
exegenはjarファイルをexeにできるのか?
■ このスレッドは過去ログ倉庫に格納されています