2009-08-12 15 views
3

私はJavaのプログラマーで、私はiPhone用のアプリを書いてみたいです。私は研究を始め、自分自身がxmlvmを見ていることを発見しました。これはすべて役に立ちましたが、xmlvmには見つからないコンパイルできないUIWindowクラスのHelloWorld.javaがあります。それは、xmlvmのHelloWorld.javaをIphone用にコンパイルできるように、Java用のAPIがどこにあるのか不足しています。ここにコードがあります:そして、私はすでにantでxmlvmをコンパイルしていて、クラスパスにxmlvm.jarを持っていますか?Java用のCocoaまたはObjective C APIはありますか?

import org.xmlvm.iphone.*; 

public class HelloWorld extends UIApplication { 

    public void applicationDidFinishLaunching(UIApplication app) { 
     UIScreen screen = UIScreen.mainScreen(); 
     CGRect rect = screen.applicationFrame(); 
     UIWindow window = new UIWindow(rect); 

     rect.origin.x = rect.origin.y = 0; 
     UIView mainView = new UIView(rect); 
     window.addSubview(mainView); 

     UILabel title = new UILabel(rect); 
     title.setText("Hello World!"); 
     title.setTextAlignment(UITextAlignment.UITextAlignmentCenter); 
     mainView.addSubview(title); 

     window.makeKeyAndVisible(); 
    } 

    public static void main(String[] args) { 
     UIApplication.main(args, HelloWorld.class); 
    } 

} 
+0

Objective-Cを学ぶだけです。メモリ管理のコンセプトを頭で囲むのではなく、文法をよく理解するには数日かかりました。 – bpapa

+0

は、彼らがこのページについて話しているか、メモリ管理です:[自動リファレンスカウント ] [1] [1]:https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language /AutomaticReferenceCounting.html#//apple_ref/doc/uid/TP40014097-CH20-ID48 – nyxee

答えて

3

iphoneにJava VMはありません。xmlvmは、Javaコードを電話機の実行可能ファイルにクロスコンパイルする必要があります。

編集1:それはJavaから来ていると言われていますが、目的に合ったCが移行するのは大変だと思います。 JavaやC/C++からの習得には数ヶ月かかりました。実際のプログラマーのようなiphoneプログラミングに関する書籍のほとんどは、あなたのための小さな背景も示しています。それは習得の曲線ですが、最終的には電話でのファーストクラスの言語としての不満は少なくなり、ツールやドキュメントなどで十分にサポートされています。

編集2:ウェブページを一見すると、 xmlvmは実際にはobjective-Cであり、ネイティブなxvmlmサポートフレームワークとリンクしています。次のステップは、あなたが持っているツールチェインを使って目的のCの出力をコンパイルすることです。おそらくxcodeですが、そうでない場合はgccのツールチェインを使用します。とにかく最終結果はJavaバイトコードではなくネイティブの実行可能ファイルになります。あなたはobjective-Cからビルドした実行可能ファイルのようにインストールします。

+0

Obj-Cを使用していたので、私はそれを逆にしてJavaの学習を非常に簡単にすることができました。もちろん、私は構文に役立つC++にも精通していました。 – Robin

0

この質問は、それは遅すぎるかもしれないので、5ヶ月前に投稿されたように見える - しかし私は、NetBeansには、このHelloWorld.javaファイルをインポートしてから、私のライブラリパスにxmlvm.jarを追加しました - すぐに

ことを確認します
CGRect rect = screen.applicationFrame(); 

title.setTextAlignment(UITextAlignment.UITextAlignmentCenter); 

が壊れていました。 はありがたいことに、NetBeansのオートコンプリートは

CGRect rect = screen.getApplicationFrame(); 

とする第二に最初を変更するには私に言った:

title.setTextAlignment(UITextAlignment.Center); 

私は、エラーなしでNetBeansプロジェクトをコンパイルするために進みました。 xmlvmは結果のバイトコード(.classファイル)をiPhone/Xcodeアプリケーションにコンパイルしましたが、自動的に生成されたコードの不一致のためにコンパイルできませんでした。

XMLVMは非常に有望な偉大なプロジェクトのように見えますが、コードを更新していくうちにドキュメンテーションが落ち込み、最初の不具合が発生します。

私は2番目の論理的な説明はありません。

0

私はこれがまさにあなたが求めているのではないことを知っていますが、あなたはGWTを見ているかもしれません。それはあなたのアプリをウェブベースにしているので(ストアから外してしまうので、大部分の人は甘いiStoreの現金を作ることができないので興味がありません)、ウェブクライアントのために非常に自然なJava言語でプログラミングすることができます。あなたが選択すれば、 "Web"プロトコルを完全に扱うことを避けることができます。

関連する問題