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);
}
}
もちろん、それは可能ですが、私はなぜそれをしたいと思うのか分かりません。いずれにしても、クラスパスには、アプリケーションで使用されるすべてのライブラリ(春など)が含まれている必要があります。あなたのクラスがあるディレクトリだけではありません。 –
@JBNizet 'Application'のメインクラスも見つけられないと言っています(' -cp。 'と同じディレクトリにいる場合はそうでないはずです)。私はこれが問題を解決するかどうかテストしようとしています。https://stackoverflow.com/questions/47966552/linux-delete-jar-file-after-running-it – Avery235
'.'がクラスパスにある場合、実行する必要がありますそれは 'hello'フォルダを含むディレクトリからです。これは基本的なJavaのものです。クラスの名前はhello.Applicationなので、Javaはクラスパス( '.')でパッケージをディレクトリと照合して探します。 'hello.Application'をロードするとき、'。/ hello/Application.class'を探します。アプリの実行中にアプリケーションのjarファイルを削除しても意味がありません。それはあなたのハードドライブをフォーマットし、あなたがあなたのコンピュータを引き続き使用できることを望むようなものです。あなたのディスクに40MB以下の容量がある場合は、別のディスクを購入してください。 –