2017-12-25 11 views
0

mavenで構築したJava Springアプリケーションがあり、.jarファイルと.classファイルが生成されました。.jarファイルの代わりにSpringの.classを実行します

.jarファイルを実行する代わりに、代わりに.classファイルを実行する方法はありますか?

Application.class(ソースコードはApplication.java)と同じディレクトリにjava -cp . hello.Applicationを実行しようとしましたが、Error: Could not find or load main class hello.Applicationとなっています。 hello.を取り外すこともできませんでした。

package hello; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 

@SpringBootApplication 
public class Application { 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 
} 
+0

もちろん、それは可能ですが、私はなぜそれをしたいと思うのか分かりません。いずれにしても、クラスパスには、アプリケーションで使用されるすべてのライブラリ(春など)が含まれている必要があります。あなたのクラスがあるディレクトリだけではありません。 –

+0

@JBNizet 'Application'のメインクラスも見つけられないと言っています(' -cp。 'と同じディレクトリにいる場合はそうでないはずです)。私はこれが問題を解決するかどうかテストしようとしています。https://stackoverflow.com/questions/47966552/linux-delete-jar-file-after-running-it – Avery235

+1

'.'がクラスパスにある場合、実行する必要がありますそれは 'hello'フォルダを含むディレクトリからです。これは基本的なJavaのものです。クラスの名前はhello.Applicationなので、Javaはクラスパス( '.')でパッケージをディレクトリと照合して探します。 'hello.Application'をロードするとき、'。/ hello/Application.class'を探します。アプリの実行中にアプリケーションのjarファイルを削除しても意味がありません。それはあなたのハードドライブをフォーマットし、あなたがあなたのコンピュータを引き続き使用できることを望むようなものです。あなたのディスクに40MB以下の容量がある場合は、別のディスクを購入してください。 –

答えて

-2

あなたは以下のコマンドを実行してクラスを実行することができます

java Application 

を単純なコンソールアプリケーションのために。 Springブートアプリケーションを実行するには、jarファイルをビルドし、jarファイルを実行してmainメソッドを呼び出してSpringブートコンテキストをロードする必要があります。 Spring Bootは、実行するためにいくつかの要件と依存関係を必要とします。 Springはコンテキストをロードし、ロードする特別な構造を作成します。より多くのあなたは、以下のリンクを見ることができるために:私はやっている

https://spring.io/guides/gs/spring-boot/

http://www.logicbig.com/tutorials/spring-framework/spring-boot/boot-exploded-structure/

+0

私は.jarについて知っていました。私の質問は '.class'を代わりに実行する方法でした。あなたのコマンドは、私がOPで言及したのと同じエラーを出しました。 – Avery235

+0

.classファイルでスプリングブートを実行することはできません。 .classファイルは特定のJavaクラスのみです。 jarにはアプリケーションをロードするために必要なすべてのJavaファイルが含まれています。 – M2E67

-1

を春のブートapplication.Iはあなたにもそれを実行するために称賛のjarファイルを作成するために、Mavenを使用して、Linuxが使用することができると思います。

関連する問題