情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 | 編集

Eclipseが不安定になったり起動できなくなる問題について このエントリーを含むはてなブックマーク

eclipseが不安定の原因

今回、Eclipseが非常に不安定になり、起動してすぐ応答無しになってしまうこともあり、使い物にならなくなってしまいました。今では解決しましたが、そのときの解決方法と、「現時点で解決されたのかどうか、はたまた未解決なのか」をメモしておきます。

問題

問題が発生した環境は、Windows 7 64bit、Java SE Runtime Environment build 1.6.0_21-b06 64bit(JRE 6u21)、Eclipse 3.6 Helios(64bit)です。

対策

対策は、「Windows 7 x64 への Eclipse Helios のインストール」を参考に、eclipse.iniファイルに

--launcher.XXMaxPermSize
256M

を加えただけです。変更後のeclipse.iniはこんな感じ。

-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.0.v20100503
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-XX:MaxPermSize=256m
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx384m

これだけで、無事解決できました。

現在は?

ここまでは、作業履歴のようなもので、これからJREとEclipseをインストールする人がどうするべきかのほうが大事です。そして、Eclipseのサイトに、次のような記述がありました。

UPDATE: The latest JDK/JRE downloads have fixed this problem, so the reecommended way to resolve the problem is to download and re-install from http://www.java.com (alternative link is http://java.sun.com/javase/downloads/index.jsp). Make sure you have b07 or higher by running java -version
(FAQ How do I run Eclipse? Oracle/Sun VM 1.6.0_21 on Windows より)

つまり、現在新しくJRE(JDK)をダウンロードしてインストールする分にはこの問題は発生しないようです。そのため、少なくともこの問題を回避するためにJRE 6u20をインストーする必要はもうなさそうです。以上、メモ終わり。

Eclipseで学ぶはじめてのJava
Eclipse PDTではじめるPHPプログラミング入門
Eclipse 3.4 プラグイン開発 徹底攻略

スポンサーサイト
Eclipse | コメント:0 | トラックバック:0 | 編集

Overlay Weaver で新しいルーティングアルゴリズムを作る方法(3/3) このエントリーを含むはてなブックマーク

この記事は、「Overlay Weaver で新しいルーティングアルゴリズムを作る方法(2/3)」のつづきです。

DHT | コメント:0 | トラックバック:0 | 編集

Overlay Weaver で新しいルーティングアルゴリズムを作る方法(2/3) このエントリーを含むはてなブックマーク

この記事は、「Overlay Weaver で新しいルーティングアルゴリズムを作る方法(1/3)」のつづきです。

DHT | コメント:0 | トラックバック:0 | 編集

Overlay Weaver で新しいルーティングアルゴリズムを作る方法(1/3) このエントリーを含むはてなブックマーク

Overlay Weaver は、オーバレイ構築ツールキットで、いろいろ便利な機能がたくさんあります。特に、エミュレータ上で動いたアルゴリズムのコードがそのまま実環境で利用できることがとても便利だと思います。その他、詳細はリンク先へ。

今回は、「Chord」や「Kademlia」のようなDHTルーティングアルゴリズムをOverlay Weaver上に実装する方法、特に重要なポイントを紹介しますかなりの分量になる予感

DHT | コメント:0 | トラックバック:0 | 編集

subclipseでupdate時に衝突した場合の解決方法 このエントリーを含むはてなブックマーク

一人利用だとsubversionを利用していてもコミット時に衝突することなどなかったのですが、実際に衝突してみて分かったことをメモ

subclipseでの衝突表示

update(更新)実行時に、自分が変更を加えたリビジョン(rev9)より新しいリビジョン(rev10)がすでにコミット済みで、変更位置が重なっていた場合、衝突が発生します。つまり、編集箇所がかぶってしまった場合に発生するわけです。

衝突が発生すると、衝突が発生した箇所に

<<<<<<< .mine
=======
>>>>>>> .r10
という3つの行が現れます。どうやらこれらは、
(衝突に関係ないところ)
<<<<<<< .mine
(updateしようとしたときの作業コピーの内容)
=======
(すでにコミットされていたレポジトリrevision10の内容)
>>>>>>> .r10
(衝突に関係ないところ)
という意味みたいです。つまり、自分の作業コピーの内容に戻すには、「=======」から「>>>>>>> .r10」までを削除すればいいわけです。

修正してコミットしてみる

上記のように、衝突時、ファイルに><が大量に書き込まれてしまうので、手元でファイルを修正してコミットします。しかし、以下のようなエラーが発生してしまいます。

'SVNコミット' has encountered a problem.

org.tigris.subversion.javahl.ClientException:
A conflict in the working copy  obstructs the current operation
svn: Commit failed (details follow):
svn: Abortingj commit:
'D:\...\workspace\作業コピーの場所\ClassName.java'
remains in conflict
衝突を修正したはずなのにどうすればよいのか。

どうすればいいのか

衝突していた場所を適切に修正したのにエラーが表示されたわけですが、ではいったいどうすればいいのか。

エラー本文に「remains in conflict」とありますが、これは内容的な衝突が残っているということではなく、とあるファイルが残っていることを示しています。たとえば、ClassName.javaファイルが衝突していた場合、同じファイル階層に

ClassName.java.mine
ClassName.java.r9
ClassName.java.r10
の3つが作成されているはずです。「.mine」ファイルが自分の作業コピー、「.r9」が自分が変更を加えていたリビジョン、「.r10」がすでにレポジトリにコミットされていた内容を表したファイルです。これらが削除されるまで「remains in conflict」が残ってしまいます。つまり、これら3ファイルを削除すればOKです

具体的な方法

まず、.java.mine、.java.r??ファイルなどを参考にしながら、もともとの作業コピーである.javaファイルを修正します。

続いて、「Package Explorer」上の.javaファイルを右クリックして、「Team>解決済みにマーク」をクリックし、「解決済みにマーク」ダイアログを表示させます。

What do you want to do?
  • Conflicts have been resolved in the file.
  • Resolve the conflict by using my version of the file.
  • Resolve the conflict by using the incoming version of the file.
  • Resolve the conflict by using the base version of the file.
ここで、「Conflicts have been resolved in the file」を選択すれば完了ですcf. $svn help resolved

強制的に上書きしたいときは

このような衝突時に強制的に自分の作業コピーでレポジトリを上書きしたい場合は、「Resolve the conflict by using my version of the file.」を選択すればOKです。

まとめ

衝突したときは、機械的に生成される「.mine」「.r最新の番号」「.r古い番号」という3ファイルをどうにかして削除する必要があり、削除には、「解決済みにマーク」を利用するのがよい。

バージョン管理ってすごく便利だけど、機能がたくさんあって難しい。

Subversion | コメント:0 | トラックバック:0 | 編集
 | HOME | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。