2012-01-25 4 views
-1

私はJavaコードをアプリケーションから生成しています。 私はJREをとり、すべてのファイルを新しいディレクトリに展開しました。 MANIFEST.MFがメインメソッドなしのMETA-INFフォルダがあります。このJRE Witinメインクラスはどのようにして見つけられますか?エントリーポイント?

は、私は次のよう...

JavaのSteve.class

をCMDしかし、私はこのエラーを取得するに興味があるコードのクラスであります...

Could not load for find Main Class Steve.class. 

これらのクラスファイルのどこかにMainクラスがあると仮定していますが、これらのすべてのドキュメントを検索するにはどうすればよいですか?アプリケーションはありますか?

ありがとうございます!

+1

*「私はこのエラーを受け取りました...」*いいえ、エラーメッセージをコピー/ペートしてください。むしろそれらを言い換えてください。 "*私はJREをとり、すべてのファイルを抽出しました" *それは必要ありません。 –

答えて

2

まず:このメソッドのシグネチャを公開するすべてのクラス:

public static void main(String[] args) { } 

は、JVMとシェルの実行を可能にするために、マニフェストに置くの対象からメインクラスの起動可能である可能性があります。

2番目:JREでクラスを起動するときは、クラスの完全修飾名を指定する必要があります。たとえば、Steve.classファイルがcom/mycompany/appなどのツリー構造にあり、MANIFESTディレクトリがあるアプリケーションのルートから起動する場合は、ルートディレクトリから起動する必要があります。

Steveがメインメソッドを公開していて、ルートからそれを正しく指すことができる場合は、起動することができます。

+0

x.x.x.Steveはクールで、私はそれを動作させました。私が得ているエラーは、まさにあなたがあなたのメッセージに立っているものです。私には次のものがあります。 .... public static void main(String [] args) - これをManifestファイルにどのように入れますか?どのソースコードを添付できるのかを知るにはどうすればいいですか? –

+0

アプリケーションのエントリポイントを設定するには、マニフェストファイルに ""の行を追加します。ここhttp://docs.oracle.com/javase/tutorial/deployment/jar/appman.htmlを参照してください。 –

+0

準拠したmain()メソッドを持つクラスを視覚的に検索するには、EclipseなどのIDEを使用して、クラスを視覚的に検査することができます。 Eclipseはすべてのクラス(コンパイルされているかどうか)をツリーとして表示し、メソッドフィールドなどを表示し、それらの検索を実行させます。 –

6

Javaプログラムを呼び出すときに接尾辞.classは必要ありません。このようにそれを実行します。mainメソッドを持つクラス動作するように

java Steve 

、あなたはそれぞれのクラスファイルに(Javaクラスは、逆アセンブラファイル)javapを使用することができます。たとえば:

$ javap Foo 
Compiled from "Foo.java" 
public class Foo extends java.lang.Object{ 
    public Foo(); 
    public static void main(java.lang.String[]); 
}