[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 03/12 09:33 / Filesize : 268 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

 【初心者】Java質問・相談スレッド118【歓迎】



1 名前:デフォルトの名無しさん mailto:sage [2008/08/10(日) 18:21:51 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    pc11.2ch.net/hp/
Webプログラミング pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド116【歓迎】
pc11.2ch.net/test/read.cgi/tech/1213347130/
次スレは>>990あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/


159 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:09:30 ]
匿名メソッドのメリットがいまいち分からないのですが、
コーディング量が少し減ることと、
そのメソッドへ他からアクセスできないこと以外で
何かメリットってあるのでしょうか?
よろしくお願いします。

160 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:10:15 ]
匿名メソッドなんてあったっけ?

161 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:15:04 ]
匿名クラスでした、すみません

162 名前:デフォルトの名無しさん [2008/08/14(木) 20:42:09 ]
>>155
それは職場が糞なんじゃなくて、お前が糞なんじゃないの?
なんかお前にはVBの方が向いてるような・・・

163 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:46:24 ]
そういう話はマ板でどうぞ

164 名前:デフォルトの名無しさん [2008/08/14(木) 21:44:18 ]
相変わらず、糞だらけのスレですね(^^

165 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 22:40:07 ]
>>159
・いちいち名前を考えずに済む
・普通の内部クラスは書く場所と使う場所が離れていてわかりにくい

166 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 23:53:02 ]
fileChooserを利用して、選択したクラスファイルを取得したいのですが

File file = fileChooser.getSelectedFile();
Class cls = file.getClass();

これではうまくできません。
どのようにすれば良いか、どなたか教えてくれませんか?

167 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 00:32:35 ]
クラスファイルをロードしたいってことか?
class MyClassLoader extends ClassLoader {
public Class<?> loadClassfile(File file) throws いろいろ {
byte[] data = new byte[(int)file.length()];
FileInputStream in = new FileInputStream(file);
new DataInputStream(in).readFully(data);
in.close();
Class<?> cls = defineClass(null, data, 0, data.length);
resolveClass(cls);
return cls;
}
}
という独自クラスローダを作って、
Class<?> cls = new MyClassLoader().loadClassfile(file);
でどうよ



168 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 00:50:39 ]
>>167
クラスを取得してコンストラクタの分析などをリフレクションを用いて実現させたいんです。

File file = fileChooser.getSelectedFile();
Class cls = Class.forName(file.toString());

とかも試したんですけどうまくいきませんでした…
なにぶん初心者なもので、根本的なことが間違ってる気がしてならないですorz

169 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 01:44:09 ]
>>168
Class.forNameで渡すのはFileとかのクラスファイルの場所ではなくてクラス名そのもの。
クラスファイルをクラスパスの通っているところから参照できる場所に置いておけばクラス名から探してくれる。
クラス名がfoo.bar.Hogeならクラスパスの通っているところのサブディレクトリとしてfoo、その下にbarという
ディレクトリがあって、その中にHoge.classがあればClass.forName("foo.bar.Hoge")でClassインスタンスが得られる。
クラスパスとは無関係にクラスをロードしたいのならURLClassLoaderを使うのが楽かも。
URLClassLoaderでぐぐればサンプルはいくらでもある。

170 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:09:03 ]
>>167
readFully(data); を使うのは単に趣味ですか?
read(data);とどう違うのかAPI Docs上から分からないんですがご存知でしょうか。

171 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 04:57:34 ]
readは指定したバイト数全部を読み込むことは保証されていない
1バイトでも読めれば、読み込めたバイト数を返す

readFullyは指定したバイト数全部読み込む
読み込めなければEOFException

172 名前:デフォルトの名無しさん [2008/08/15(金) 05:35:43 ]
秒妙な違いですけど、引数がFileなのでreadFullyはやらないほうがいいのでは?
間違ってはないけど、そこで使うのはDataInputの設計目的と微妙に違うような…


173 名前:デフォルトの名無しさん [2008/08/15(金) 09:19:21 ]
いつも来ていた糞野郎は死んだか?

174 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 10:29:51 ]
Thread.currentThread().getStackTrace()でスタック情報が取得できますが、引数インスタンスは取得できません。
引数インスタンスを取得する方法はあるでしょうか?

175 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 10:39:16 ]
>>174
caller の引数に触りたいって話ならデバッガ使えば?

176 名前:デフォルトの名無しさん [2008/08/15(金) 14:05:49 ]
糞はドブに流れていってしまったが?

177 名前:デフォルトの名無しさん [2008/08/15(金) 19:18:11 ]
テストについて質問です。
値を返すメソッドなら期待される値と実際の値を比較しますが、
値を返さないメソッドはどのようにテストをすればいいのでしょう。
DBに書き込むメソッドとかなら書き込まれた値をチェックできますが、
例えば以下のようなものです。
・メールを送信するメソッド
・コンソールに文字を出力するメソッド



178 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 19:46:12 ]
mainって普通プログラムの中でどういう部分を書くものなのでしょうか?
staticだから長いプログラムを書くと面倒になる部分が多いので
mainでは自分のクラスのコンストラクタをnewするくらいにしか使わなくて、
そのコンストラクタの方で色々書くようにしているのですが、どうなんでしょう?



179 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 19:49:06 ]
テストの基本は事前条件と事後条件が正しいことを確認すること
・メールを送信するメソッド
メールを送信するクラスが正しく呼び出されたかをチェックする

・コンソールに文字を出力するメソッド
これは難しいのでやらない
やる場合は、特定の文字を出力するメソッドのテストとしておいて、
Writerはsetterで設定できるようにしておく
どちらにせよコード中にSystem.outがあるのはウンコ

180 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 19:51:46 ]
>178
いわゆるエントリポイントってやつだから、外部から起動する時に必要な範囲の処理を行うのが正しい
なので、コンストラクタの方で色々やっているのは正しいよ。
mainに書くべき処理といえば、後はプログラムの実行引数のチェックやデフォルト値の設定。
バグで落ちたときにどうするかの処理とか、そんな感じだろうな

181 名前:177 mailto:sage [2008/08/15(金) 20:12:33 ]
>>179
> メールを送信するクラスが正しく呼び出されたかをチェックする
これ、もうちょい詳しく解説してくれるとうれしいです。

> Writerはsetterで設定できるようにしておく
なるほど。それなら結構簡単にテストできそうですね。

182 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 20:22:42 ]
>>177
テストアドレスに送信して、受信して、その内容をチェックすれば良いだけでは

183 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 21:40:47 ]
>>181
方法は幾つかあるけど、インターフェイスをきってテスト用のオブジェクト(モック)でテストを実行する。
モックなんで実際にはメールを投げずに内部的なステータスを変化させるだけ
テストとしてはステータスが変わった(目的のメソッドが実行された)ことを確認する

完全にJavaMailを使っている箇所などをテストする場合は面倒だけど、EasyMockなんかを利用するしかない。
単体テストで再帰的にやるならばこんな感じ。

後は本当に動くかどうかは開発中は動作確認レベルで済ませてシステムテストでやる

184 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 22:20:58 ]
ネットワークプログラミングを勉強中なのですが、
サーバ側
public static void main(String[] args){
ServerSocket ss=new ServerSocket(7777);
Socket sock=ss.accept();
BufferedReader br=new BufferedReader(new InputStreamReader(sock.getInputStream()));
System.out.println(br.readLine());
br.close();
sock.close();
ss.close();
}

クライアント側
public static void main(String[]  args){
Socket sock=new Sock(コンピュータ名,7777);
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(sock.getOutputStream));
bw.write(br.readLine());
bw.close();
br.close();
sock.close();
}

この二つを実行するとサーバ側で何も表示されません。
クライアント側のBufferedReaderの件を全部消してbw.write("hoge");
とかに直すと、ちゃんとサーバ側のPCでhogeと表示されるのですが、
何がいけないのでしょうか?

185 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 22:23:09 ]
closeしちゃダメだろ

186 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 23:50:37 ]
JNIを使ってJavaの引数にクラスを指定し、
C側でクラス内のString型のフィールドにデータを入れようと以下のようなプログラムを書きました。
そしたら半角カナに濁点の文字が文字化けしてしまいました。
こういった場合どのように対処したらいいのでしょうか、ご教授ください!

C側↓
JNIEXPORT jlong JNICALL Java_Test(JNIEnv *env, jclass, jobject obj){
jclass cs = env->GetObjectClass(obj);
jfieldID fid = env->GetFieldID(cs,"strParam" , "Ljava/lang/String;");
env->SetObjectField(obj, fid, env->NewStringUTF("サブキー");
return 0;
}

java側↓
HogeClass hoge = new HogeClass();
 Main.Test(hoge);
System.out.println(
new String( hoge.strParam.getBytes("iso-8859-1"), "MS932")
);


187 名前:もう泣きそう mailto:sage [2008/08/16(土) 01:30:05 ]
UNIXの環境変数受け渡しについて
教えて下さい。

シェルスクリプトで設定した環境変数は、JAVA(jarのクラス)側で
読み取れると思いますが、その逆は可能なのでしょうか?

以下を想定しています。
もし可能なら、メソッド名とかを教えて下さい。

-----------------------------------------
#!/bin/bash
export AAA=a.txt

java classA -xm=512m・・・

echo KEKKA1=$KEKKA1 ←これが可能でしょうか?
echo KEKKA2=$KEKKA2 ←これが可能でしょうか?
-----------------------------------------

public void class cassA {
  String aaa = system.getenv("AAA");
  String kekka1 = "data1"; ←これを返したいのです。
  String kekka2 = "data2"; ←これを返したいのです。
  (設定するロジックというかメソッド名・・・)
}

JAVA側の変数をシェルで読み取れれば良いのですが、
もし可能なら、メソッド名とか簡単でもいいのでサンプル例等を
教えて下さい。
もう泣きそうです・・(;-;)



188 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 01:38:01 ]
何か良くわからんけどファイルに書き出せば良いじゃん
でシェルで読み込めば

189 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 02:03:52 ]
>>187
通常、子プロセスは親プロセスの環境変数を変えられない。

190 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 05:21:40 ]
JDBC での Oracle との連携を勉強しようとしていたら
Oracle のサイトに Java関連の Tips が大量に合って助かったのですが
逆に .NET でのサンプルが皆無だったので気になりました
Oracle と Java って何か深い繋がりがあるのでしょうか?
それとも Oracle が Java を一方的に支持してる感じ?

191 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 07:40:40 ]
>>186
半角かな以外は化けないか確認した?
半角英数はともかく、漢字は化けると思うが。

> env->SetObjectField(obj, fid, env->NewStringUTF("サブキー");
これ UTF-8 渡してるのか?
VisualC++ とかなら env->NewString(L"サブキー", 5) とかした方が。

> new String( hoge.strParam.getBytes("iso-8859-1"), "MS932")
これやると確実に化けるんじゃね?

192 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 08:49:08 ]
>186
JNI を使ってJavaクラスのパラメータをいじる方法は良く分からんですが、
半角カナというのは、どの文字符号化方式で定義されているものを使うのですかね。

String 内部は UTF-16 (char) 配列です。

193 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 09:43:02 ]
a

194 名前:デフォルトの名無しさん [2008/08/16(土) 11:03:24 ]
interfaceは多重に継承できるんですけど、もしスーパー・インタフェイスと
メソッド名やシグニチャがかぶったら継承できないんですか。
特に他の人が使ったインタフェイスで、
戻り値がかぶったり、戻り値がlongとかだったらどうするのでしょうか。

どうやって回避するんでしょうか?

195 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 11:27:09 ]
>>194
シグニチャ同じで戻り値型違うのは無理。
シグニチャ同じで戻り値型同じなら実装できるけど、
各interface が別々の振る舞いを期待してる場合は無理。

メソッド名付ける時点で被らないように気をつけるぐらいしかないね。

196 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 11:30:12 ]
>>194
インターフェースはそもそもシグネチャしか定義しない(定数定義もあるけどここでは無視)ので、多重定義になっても問題はない。
何故なら、同じ名前、同じ引数、同じ返り値を持っている、ということ以外の情報は定義されないから。
実装側で、同じシグネチャなのに異なるインターフェースでアクセスされると違う動作をしなければならない、ということであれば、それは設計が間違っている。

197 名前:デフォルトの名無しさん [2008/08/16(土) 11:38:24 ]
>>196
そういう問題じゃなくて、AppendableとStringBuffer.appendのような話をしてるんですけど…

それもjdk1.4以前だとどうやって回避してたんでしょうか。





198 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 11:41:59 ]
> AppendableとStringBuffer.appendのような話
このケースって、なんか問題あんの?

199 名前:デフォルトの名無しさん [2008/08/16(土) 11:48:01 ]
jdk1.4以前

200 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 11:49:53 ]
1.4以前は Appendableないから問題ないよ。

201 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 12:02:47 ]
>>197
何が疑問なのかわからん。その例ってインターフェースの多重継承とは何の関係もないじゃん。
一応書いとくけど、インターフェースの多重継承って、
interfece SuperInterfaceA { int hoge(int x); }
interface SuperInterfaceB { int hoge(int x); }
interface SubInterface extends SuperInterfaceA, SuperInterfaceB {}
というものだぞ。

202 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 12:25:23 ]
>194
こんなのでどうさ。

ttp://www.y-adagio.com/public/standards/tr_javalang2/interfaces.doc.html#40247

203 名前:デフォルトの名無しさん [2008/08/16(土) 12:50:00 ]
classと同じでinterfaceをextends出来るけど、継承」の意味が少し違うようですね。

本当は、自作のインタフェイス interface My_interface{
My_interface append(My_interface); 
}
例えば引数assertチェックありで、
class StringBufferも引数My_interfaceに参加させたいんですけど、
class StringBufferは当然他人が作ったライブラリなので、My_interfaceを実装できません。

今のところifで分岐してるんですけど、こういうときは、どうやれば自作インタフェイスにくわえられるんでしょうか。




204 名前:デフォルトの名無しさん [2008/08/16(土) 12:52:20 ]
例えば引数assertチェックありとかの実装で。

205 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 12:58:17 ]
アダプタパターン

206 名前:デフォルトの名無しさん [2008/08/16(土) 13:45:32 ]
アダプタよりもデコレータ・パタンかな

207 名前:デフォルトの名無しさん [2008/08/16(土) 13:47:28 ]
>>200
例えばで出してみたんですけど、分かりませんか?
自作したインタフェイスの話しなんですけど・・・



208 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 13:53:32 ]
なんかでラップすりゃいいじゃん

209 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 14:15:28 ]
>>203
まず、Javaでは原則として既存のクラスやインターフェースに手を加えることはできない。
該当のクラスがfinalでなければ、サブクラスを作ってそこでimplementsする手はある。
該当のクラスがfinalであれば、自作のクラスでラップするしかない。

210 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 16:38:08 ]
Listのキャストはエレメントを個別にキャストするしかありませんか?

211 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 16:38:53 ]
generics 使えば?

212 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 16:47:37 ]
どうするんですか?

(List<MyClass>)list
のようなキャストが失敗します。

213 名前:デフォルトの名無しさん [2008/08/16(土) 16:54:48 ]
自作したインタフェイスを使ってライブラリ作ってんるんですけど、
そこに他人が作ったクラスも参加させるのはどうするんでしょうか?

とういことなんですけど、これだけじゃ何言ってるかわからないと思いませんか。

214 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 16:57:22 ]
>>213
共有ライブラリとかプラグインとかリフレクションの世界のことかと思った。

215 名前:デフォルトの名無しさん [2008/08/16(土) 18:33:05 ]
class MyBig extends BigDecimal {
    MyBig(String v){super(v);}
    public MyBig abs(){return this;}
}

BigDecima.abs()をオーバライドしたいのですが、1.4以前ではどうやるんでしょうか。
negate()と同じく、メソッド名に意味があるので名前を変更できないので何かよい方法はないでしょうか?

216 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 18:54:57 ]
eclipse の JDT を使ってみようと思ってるんですが,eclipse 上で,
import org.eclipse.jdt.core.dom.*;
などど打っても org.eclipse が見つかりませんというエラーが出てしまいます.

どうすれば解決できますか?

217 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 19:09:49 ]
>>215
1.4 だと covariant return typeが使えないから public BigDecimal abs()で我慢。
もしくはextends BigDecimalを諦める。



218 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 19:43:52 ]
finalで参照型変数を宣言した場合、
それはどこを参照するかを固定するという認識で合ってますでしょうか?
その場合、参照先のインスタンスの属性をsetter等を用いて変更されないようにするというのは
不可能なのでしょうか?

219 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 20:09:15 ]
>>213
SPIのことじゃない?

220 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 20:37:33 ]
>>218
Immutable な拡張クラス作って属性変更できないようにするとか
不可能じゃないけど変更されないようにできる便利な言語機能はない。

221 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 20:40:07 ]
>>218
setterを作らない

222 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:36:26 ]
Java を使って組み込み系のソフトウェア(携帯アプリ除く)を作成することはできますか?

223 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 21:48:51 ]
CDC JavaTVetc

224 名前:デフォルトの名無しさん mailto:sage [2008/08/16(土) 23:41:22 ]
>>216
自己解決しました.
プロジェクトをプラグインプロジェクトに変更して,プラグイン依存関係を解決したらO.K.でした.

225 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 00:25:07 ]
>212
キャストは動的。ジェネリクスは静的かつ、型情報は消滅。

>218
変更させたくないインスタンスは委譲でも使って隠匿すべし。

226 名前:94 mailto:sage [2008/08/17(日) 01:12:31 ]
94です。だいぶ前で皆さん忘れておられると思いますが、この擦れの方のおかげであの質問は解決しました。
遅くなりましたが、応えてくださった97さんや99さんなど、皆さんありがとうございます。

・・・すいません。それだけです。

227 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 01:27:37 ]
どうせならどのように解決したかを書いてくれると、後から読む人のためになって良い



228 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 12:55:58 ]
スタンドアロンのJavaアプリで、HTMLのクリッカブルマップのようなことは、可能でしょうか?
具体的には、フォーム上に日本地図の画像があって、
各県をクリックすると、ポップアップウィンドウが表示される、
みたいな感じなんですが。

229 名前:デフォルトの名無しさん [2008/08/17(日) 13:00:47 ]
非常に簡単

230 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 19:59:57 ]
このスレには親切な人が多いですね。たまにマ版と間違えてるような変な人もいますが・・・・

231 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 20:34:20 ]
マと何か区別しなきゃいけないのか?

232 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 21:23:11 ]
>>231
愚痴を書き込むスレではないだろ

233 名前:186 mailto:sage [2008/08/17(日) 21:28:01 ]
なんとか解決したっぽいです。
初心者なので、UNICODEとUTF8の違いとかいまいちピンときませんが、
イメージは「UNICODEがIDとしたらUTF8はIDをUTF8という形式で表現したデータ」ということでしょうか?
間違ってましたら指摘してくださいorz

で、UTF8での受け渡しを止めてUNICODEでの受け渡しをするようにしました

C側↓
JNIEXPORT jlong JNICALL Java_Test(JNIEnv *env, jclass, jobject obj){
jclass cs = env->GetObjectClass(obj);
jfieldID fid = env->GetFieldID(cs,"strParam" , "Ljava/lang/String;");

const char* cc = "サブキー";
int unicodeLength = MultiByteToWideChar(CP_ACP, 0, cc, strlen(cc), NULL, 0);
WCHAR* unicodeBuffer = new WCHAR[unicodeLength];
MultiByteToWideChar(CP_ACP, 0, messagetmp, strlen(messagetmp), unicodeBuffer, unicodeLength);
jstring strj = env->NewString((jchar *)unicodeBuffer,unicodeLength);
env->SetObjectField(obj, fidsData, strj);
return 0;
}

java側↓
HogeClass hoge = new HogeClass();
Main.Test(hoge);
System.out.println( hoge.strParam );

ちゃんと表示できてるみたいです。
しばらくはまってたのですが、「sizeof」で文字サイズを取得してたのですが、
マルチバイト?では使えなくて「MultiByteToWideChar」を使用しないといけないということですね。今までjava言語しか触ったことないのでしたorz
もっと簡単な方法ありましたら是非ご教授くださいm(__)m


234 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 21:41:51 ]
>>233
wchar_t wcstr[] = L"サブキー";
jstring strj = env->NewString((jchar *)wcstr, sizeof(wcstr) / sizeof(wchar_t));

Windows環境っぽいので wchar_t が UTF-16 きめうち。
テストしてないので動かなかったらごめん。
あと new WCHAR[unicodeLength] したのに delete しなくていいんか?

235 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:02:02 ]
>>233
いくら夏とはいえ、ちょっと見にコンパイルを通らないコードを貼るやつって、何がしたいんだろうな・・・

236 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:12:35 ]
初心者ってのはそういうもんさ

237 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:24:06 ]
おい、おまいらJavaでアップロードされたファイルのヘッダ検査を行なうjarはないですか?
教えてください。お願いします。



238 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:27:44 ]
調子のんな

239 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 22:33:02 ]
やっぱC#スレの方がいいわ

240 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 23:14:57 ]
javaのvmって sun と ibm と hp の3種類?

241 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:00:16 ]
Swingを使ってGUIを書いています。
所謂非矩形ウィンドウを作りたいと思い、検索してみたところ、
1. Mac限定の方法(背景色を透過色に設定?)
2. ウィンドウの下をキャプチャして疑似透過
の二つがあるらしい、ということを知りましたが、1番は問題外、
また、最前面に表示するような仕様のため、2番では背景と矛盾が
生じない為の頻繁な更新による負荷がやや重めになってしまいます。
もし他に方法がありましたら、参考URL等を教えてください。

#具体的には、Officeに出てくるうるさいイルカみたいな感じで、
#画像を枠無しで表示したいと考えています
#SWTだとRegionとやらで実装できるようなのですが...

242 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:06:32 ]
jdk7を待った方がいいんじゃないかな?
https://jdk6.dev.java.net/6u10ea.html
確かこれでShapeを使った非矩形ウィンドウが作れたはず・・

243 名前:デフォルトの名無しさん [2008/08/18(月) 00:29:07 ]
修飾子の読み方を教えて下さい
Gooleしても見つかりません

244 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:31:38 ]
そりゃ見つからないわ

245 名前:241 mailto:sage [2008/08/18(月) 00:32:08 ]
おぉ。どうもありがとうございます。
AWTUtilitiesとやらで非矩形や透過ウィンドウが実装出来るようになるのですね。
とりあえずはBeta使って仮実装したり、他の方法も色々工夫したりしてみながら
のんびりと正式版のリリースを待つことにします。

素早いご返答、ありがとうございました。

246 名前:243 [2008/08/18(月) 00:38:37 ]
Googleの間違いでした

ほんと修飾子って何て読むんですか?

247 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:51:09 ]
おもしろい回答できないわ。
「しゅうしょくし」だよ。



248 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:51:29 ]
jdbcのPreparedStatementなんですが、
setLongに高いインデックス(10くらい)を指定すると、
executeUpdateでエラーが発生するようです。
要は、INSERT INTO文のVALUESに指定できる?の数に制限が
あるということなのですが、この問題にはどう対処したらよいでしょうか。

249 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 00:51:51 ]
「しゅうしょくし」

ってか流石にこれはガチで小学生でも分かるから、
そういう意味ではなくvolatileとかstrictfpとかの読み方を聞いてるのか?

250 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 01:01:29 ]
特殊なデザインのウインドウは、はっきり言って使いづらいからやめて欲しい

251 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 01:04:32 ]
しゅうしょくしがしょくしゅにしか見えないんだが・・・

252 名前:243 mailto:sage [2008/08/18(月) 01:10:03 ]
>>247
>>249

ガチで有難うございます
ほんと何て読むか解らなくて…

年は40なんですが、趣味でプログラムでも始めてみようかと思い
創るJavaって本を買いまして、暇暇に読んでます

もちろん仕事はプログラムとは
あまり関係ありません

ただ、知識は無いと
指示が出来ないんですよね…

253 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 02:14:27 ]
>252
ttp://www.okapiproject.com/java/java_ref/index.html

254 名前:デフォルトの名無しさん [2008/08/18(月) 09:39:00 ]
>>252
ではオジサン相手に手取り足取り教えてやろうか。

255 名前:デフォルトの名無しさん [2008/08/18(月) 09:41:55 ]
むしろ中途半端な知識で指示される方が迷惑

256 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 09:48:07 ]
>>252
老婆心ながら
読むだけじゃだめだぞ

257 名前:デフォルトの名無しさん [2008/08/18(月) 11:54:15 ]
Javaなんかネットの勉強サイトで十分しょw



258 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 11:56:17 ]
じゃう゛ぁ♪じゃう゛ぁ♪
じゃう゛ぁじゃう゛ぁジンジンジーン♪

259 名前:デフォルトの名無しさん [2008/08/18(月) 12:07:08 ]
ConcurrentSkipListSetってクラスつかったら
プログラムを実行するたびに
同じ要素が何個も一つにセットに入ったり、一つだけ入ったりしたんだけど。
なぜですか?
TreeSetにしても同じような症状でした。
でもCopyOnWriteArraySetにしたら同じ要素は一つしかありませんでした。
どうしてかおしえてください。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<268KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef