バリケンのRuby日記 RSSフィード

2009-08-12

[][] jruby-complete-1.3.1.jarからjruby-core.jarとruby-stdlib.jarを作る  jruby-complete-1.3.1.jarからjruby-core.jarとruby-stdlib.jarを作る - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  jruby-complete-1.3.1.jarからjruby-core.jarとruby-stdlib.jarを作る - バリケンのRuby日記  jruby-complete-1.3.1.jarからjruby-core.jarとruby-stdlib.jarを作る - バリケンのRuby日記 のブックマークコメント

Windowsでjruby-complete-1.3.1.jarからjruby-core.jarとruby-stdlib.jarを作るための、自分用のメモだよ。基本的にはd:id:technohippyさんのこちらのエントリの通りだよ。

ちなみに、jruby-core.jarとruby-stdlib.jarは、Google App Engine上でJRubyを使うために必要となるファイルだよ。詳しい使い方は、また今度。

  • Java SDKのダウンロードとインストール
    • まだJava SDKをインストールしていない人は、ダウンロードしてインストールしてね
    • http://java.sun.com/javase/downloads/
    • 「JDK 6 Update 16」の右側の「Download」をクリックしてね。Platformは「Windows」だよ
    • ダウンロードしたインストーラ「jdk-6u16-windows-i586.exe」をダブルクリックしてインストールしてね。
  • コマンドプロンプトの起動
    • コマンドプロンプトを起動して、次のようにコマンドを入力してね
> set JAVA_HOME=C:\PROGRA~1\Java\jdk1.6.0_16
> set PATH=%JAVA_HOME%\bin;%PATH%
> cd [jruby-complete-1.3.1.jarをダウンロードしたディレクトリ]
> mkdir tmp_unpack
> cd tmp_unpack
> jar xf ../jruby-complete-1.3.1.jar
> cd ..
> mkdir jruby-core
> move tmp_unpack\org jruby-core
> move tmp_unpack\com jruby-core
> move tmp_unpack\jline jruby-core
> move tmp_unpack\jay jruby-core
> move tmp_unpack\jruby jruby-core
> cd jruby-core
> jar cf ../jruby-core.jar .
> cd ..\tmp_unpack
> jar cf ../ruby-stdlib.jar .
> cd ..
> rmdir /s /q jruby-core
> rmdir /s /q tmp_unpack

これで、「jruby-complete-1.3.1.jar」と同じフォルダに「jruby-core.jar」と「ruby-stdlib.jar」ができているはずだよ。

[][] 「jruby-complete-1.3.1.jar」はJRuby一式  「jruby-complete-1.3.1.jar」はJRuby一式 - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  「jruby-complete-1.3.1.jar」はJRuby一式 - バリケンのRuby日記  「jruby-complete-1.3.1.jar」はJRuby一式 - バリケンのRuby日記 のブックマークコメント

説明を省略しちゃったけど、「jruby-complete-1.3.1.jar」はJRubyを動かすために必要なライブラリを全部含んだものだよ。だから、Javaの実行環境と「jruby-complete-1.3.1.jar」さえあれば、JRubyをインストールしていなくても次のような感じでJRubyを起動することができるよ。

> java -jar jruby-complete-1.3.1.jar -v
jruby 1.3.1 (ruby 1.8.6p287) (2009-06-15 6586) (Java HotSpot(TM) Client VM 1.6.0_16) [x86-java]

> java -jar jruby-complete-1.3.1.jar -S jirb
irb(main):001:0> 2 + 3
5

irb(main):002:0> exit

>

気軽にRubyを試してみたい、という人にもいいかも!

[][] Sinatra on GAE/J  Sinatra on GAE/J - バリケンのRuby日記 を含むブックマーク はてなブックマーク -  Sinatra on GAE/J - バリケンのRuby日記  Sinatra on GAE/J - バリケンのRuby日記 のブックマークコメント

Rubyで書かれた軽量Webアプリケーション開発フレームワーク「Sinatra」をGoogle App Engine for Java上でJRubyを使って動かすための、自分用のメモだよ。基本的にはjugyoさんのこちらのエントリの通りだよ。ここでの手順はWindowsで行うことを想定しているよ。

  • sinatra_on_gaeディレクトリの作成
    • コマンドプロンプトを起動して、次のようにコマンドを入力してね
    • 空白を含むパス上だとうまく動かないみたいなので、ここではCドライブ直下に作成しているよ
> cd \
> mkdir sinatra_on_gae
  • jruby-complete-1.3.1.jarの設置
  • アプリケーションのフォルダの作成
> cd \sinatra_on_gae
> mkdir WEB-INF
> mkdir WEB-INF\gems
> mkdir WEB-INF\lib
  • Sinatraのインストール
> set JAVA_HOME=C:\PROGRA~1\Java\jdk1.6.0_16
> set PATH=%JAVA_HOME%\bin;C:\appengine-java-sdk-1.2.2\bin;%PATH%
> java -jar jruby-complete-1.3.1.jar -S gem install -i WEB-INF\gems sinatra --no-ri --no-rdoc
> rmdir /s /q WEB-INF\gems\bin
> del /q WEB-INF\gems\cache\*
  • jruby-core.jarとruby-stdlib.jarをlibフォルダに作成
> mkdir tmp_unpack
> cd tmp_unpack
> jar xf ../jruby-complete-1.3.1.jar
> cd ..
> mkdir jruby-core
> move tmp_unpack\org jruby-core
> move tmp_unpack\com jruby-core
> move tmp_unpack\jline jruby-core
> move tmp_unpack\jay jruby-core
> move tmp_unpack\jruby jruby-core
> cd jruby-core
> jar cf ../jruby-core.jar .
> cd ..\tmp_unpack
> jar cf ../ruby-stdlib.jar .
> cd ..
> rmdir /s /q jruby-core
> rmdir /s /q tmp_unpack
> move jruby-core.jar WEB-INF\lib
> move ruby-stdlib.jar WEB-INF\lib
> del jruby-complete-1.3.1.jar
  • appengine-api-1.0-sdk-1.2.2.jarのコピー
> copy C:\appengine-java-sdk-1.2.2\lib\user\appengine-api-1.0-sdk-1.2.2.jar WEB-INF\lib
  • WEB-INF/app.rbの作成
    • 単に「Hello World!!」と表示させるだけのアプリケーションだよ。
require 'rubygems'
require 'sinatra'

get '/' do
  'Hello World!!'
end
  • WEB-INF/appengine-web.xmlの作成
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <application>sinatra_on_gae</application>
    <version>1</version>
    <static-files />
    <resource-files />
    <sessions-enabled>false</sessions-enabled>
    <system-properties>
      <property name="jruby.management.enabled" value="false" />
      <property name="os.arch" value="" />
      <property name="jruby.compile.mode" value="JIT"/> <!-- JIT|FORCE|OFF -->
      <property name="jruby.compile.fastest" value="true"/>
      <property name="jruby.compile.frameless" value="true"/>
      <property name="jruby.compile.positionless" value="true"/>
      <property name="jruby.compile.threadless" value="false"/>
      <property name="jruby.compile.fastops" value="false"/>
      <property name="jruby.compile.fastcase" value="false"/>
      <property name="jruby.compile.chainsize" value="500"/>
      <property name="jruby.compile.lazyHandles" value="false"/>
      <property name="jruby.compile.peephole" value="true"/>
   </system-properties>
</appengine-web-app>
  • WEB-INF/web.xmlの作成
<!DOCTYPE web-app PUBLIC
  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

  <context-param>
    <param-name>public.root</param-name>
    <param-value>/</param-value>
  </context-param>

  <context-param>
    <param-name>rackup</param-name>
    <param-value>require 'rubygems'
require 'sinatra'

root_dir = File.dirname(__FILE__)

#set :environment, :production
set :environment, :development
set :root,        root_dir
set :app_file,    File.join(root_dir, 'app.rb')
disable :run

require 'app'

run Sinatra::Application
</param-value>
  </context-param>

  <context-param>
    <param-name>jruby.min.runtimes</param-name>
    <param-value>1</param-value>
  </context-param>

  <context-param>
    <param-name>jruby.max.runtimes</param-name>
    <param-value>1</param-value>
  </context-param>

  <context-param>
    <param-name>jruby.init.serial</param-name>
    <param-value>true</param-value>
  </context-param>

  <filter>
    <filter-name>RackFilter</filter-name>
    <filter-class>org.jruby.rack.RackFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>RackFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <listener>
    <listener-class>org.jruby.rack.RackServletContextListener</listener-class>
  </listener>

</web-app>
  • 開発用サーバの起動
> dev_appserver.cmd .
  • Google App Engineにデプロイ
    • 「appengine-web.xml」の「application」と「version」を適切に設定して、次のコマンドを実行してね
> appcfg.cmd update .

追記:SinatBBSをGAE/Jで動かしてみました!

lively1233lively12332014/10/23 15:20  天然なバンブーに活用してグッチサングラス偽物を通販

  衣装の他、バッグ?財布?靴?香水?時計?ジュエリーなど幅広く手がけるイタリアのファッションブランド。グッチサングラス「BAMBOO AND METAL AVIATOR 」もこちらあちら在庫なし、グッチサングラス偽物に興味があったのはぜひブランドコピーにご注目してくれて、ブランドの元祖と呼ばれ、世界で初めて品質保証のためにデザイナーの名前を商品に入れたことでも知られる。オープンから数年のうちに、グッチオ?グッチの皮革製品は、乗馬からインスピレーションを得たハンドバッグ、トランク、グローブ、シューズ、ベルトのコレクションを求めて世界各地から顧客が訪れるようになる。

  くつわとあぶみをモチーフにしたホースビットの革新的なデザインはこの頃に誕生し、後にグッチデザインの普遍的なシンボルとなる。グッチ2014/FW 新作のサングラス「BAMBOO AND METAL AVIATOR 」を紹介。「BAMBOO AND METAL AVIATOR 」グッチサングラスブランドはフィレンツェのクラシックなデザインの解釈を再演する。豊かな歴史的遺産と優れた職人技巧妙な融合、モダンでラグジュアリーを表す。www.btcxm.com「BAMBOO AND METAL AVIATOR 」グッチメガネは2013年発売してから、後数四半期のシリーズを数多く提供して、材質には天然なバンブーに用いられ、GGロゴをレーザーして、グッチサングラスにもっとユニークさを与える。わがしゃではスーパーコピー 代引き対応に採用。

  最も細心のアプローチは、メガネフレームの完璧に現れるために曲げ加工にバンブーあたり内の水を抜くと確認して、バンブーに柔らか色合いを加え、また悪い天気を避けるため、竹ワックスにする。そして、各竹の寿命を長く守る。そんな細部まで注意して製造アプローチのおがげて、よくフィレンツェの家の最高の解釈、、常に卓越性の伝統に付着していると体験できる。グッチ商品を体験したいなら、GUCCI 激安 コピーを購入しましょう。

トラックバック - http://rubyist.g.hatena.ne.jp/muscovyduck/20090812