# JavaAppHostingExtension

- Kind: `class`
- Package: [CommunityToolkit.Aspire.Hosting.Java](/reference/api/csharp/communitytoolkit.aspire.hosting.java.md)
- Version: `13.4.0`
- Namespace: `Aspire.Hosting`
- Target framework: `net10.0`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.Hosting.Java/JavaAppHostingExtension.Container.cs)

Provides extension methods for adding Java applications to an `Hosting.IDistributedApplicationBuilder`.

## Definition

```csharp
namespace Aspire.Hosting;

public static class JavaAppHostingExtension
{
    // ...
}
```

## Methods

- [AddJavaApp(IDistributedApplicationBuilder, string, JavaAppContainerResourceOptions)](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#addjavaapp-idistributedapplicationbuilder-string-javaappcontainerresourceoptions) : `IResourceBuilder<JavaAppContainerResource>` `extension` `obsolete` -- Adds a Java application to the application model. Executes the containerized Java app.
- [AddJavaApp(IDistributedApplicationBuilder, string, string, string, string[]?)](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#addjavaapp-idistributedapplicationbuilder-string-string-string-string) : `IResourceBuilder<JavaAppExecutableResource>` `extension` `ats export` -- Adds a Java application to the application model. Executes the executable Java app.
- [AddJavaApp(IDistributedApplicationBuilder, string, string)](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#addjavaapp-idistributedapplicationbuilder-string-string) : `IResourceBuilder<JavaAppExecutableResource>` `extension` `ats export` -- Adds a Java application to the application model. Executes the executable Java app.
- [AddJavaApp(IDistributedApplicationBuilder, string, string, JavaAppExecutableResourceOptions)](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#addjavaapp-idistributedapplicationbuilder-string-string-javaappexecutableresourceoptions) : `IResourceBuilder<JavaAppExecutableResource>` `extension` `obsolete` -- Adds a Java application to the application model. Executes the executable Java app.
- [AddJavaContainerApp(IDistributedApplicationBuilder, string, string, string?)](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#addjavacontainerapp-idistributedapplicationbuilder-string-string-string) : `IResourceBuilder<JavaAppContainerResource>` `extension` `ats export` -- Adds a Java application to the application model. Executes the containerized Java app.
- [AddSpringApp(IDistributedApplicationBuilder, string, JavaAppContainerResourceOptions)](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#addspringapp-idistributedapplicationbuilder-string-javaappcontainerresourceoptions) : `IResourceBuilder<JavaAppContainerResource>` `extension` `obsolete` -- Adds a Spring application to the application model. Executes the containerized Spring app.
- [AddSpringApp(IDistributedApplicationBuilder, string, string, JavaAppExecutableResourceOptions)](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#addspringapp-idistributedapplicationbuilder-string-string-javaappexecutableresourceoptions) : `IResourceBuilder<JavaAppExecutableResource>` `extension` `obsolete` -- Adds a Spring application to the application model. Executes the executable Spring app.
- [WithGradleBuild(IResourceBuilder<JavaAppExecutableResource>, string[])](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#withgradlebuild-iresourcebuilder-javaappexecutableresource-string) : `IResourceBuilder<JavaAppExecutableResource>` `extension` `ats export` -- Adds a Gradle build step to the application model. The wrapper script path defaults to `gradlew` (or `gradlew.bat` on Windows) in the resource's working directory, unless overridden with [JavaAppHostingExtension.WithWrapperPath(IResourceBuilder<JavaAppExecutableResource>, string)](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#withwrapperpath-iresourcebuilder-javaappexecutableresource-string).
- [WithGradleTask(IResourceBuilder<JavaAppExecutableResource>, string, string[])](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#withgradletask-iresourcebuilder-javaappexecutableresource-string-string) : `IResourceBuilder<JavaAppExecutableResource>` `extension` `ats export` -- Configures the Java application to run using a Gradle task (e.g., `bootRun`). In run mode, the resource command is changed from `java` to the Gradle wrapper. The wrapper script path defaults to `gradlew` (or `gradlew.bat` on Windows) in the resource's working directory, unless overridden with [JavaAppHostingExtension.WithWrapperPath(IResourceBuilder<JavaAppExecutableResource>, string)](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#withwrapperpath-iresourcebuilder-javaappexecutableresource-string).
- [WithJvmArgs(IResourceBuilder<T>, string[])](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#withjvmargs-iresourcebuilder-t-string) : `IResourceBuilder<T>` `extension` `ats export` -- Configures the Java Virtual Machine arguments for the Java application. The arguments are set via the `JAVA_TOOL_OPTIONS` environment variable, which is recognized by the JVM regardless of how the application is launched (e.g., `java -jar`, Maven wrapper, or Gradle wrapper).
- [WithMavenBuild(IResourceBuilder<JavaAppExecutableResource>, MavenOptions)](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#withmavenbuild-iresourcebuilder-javaappexecutableresource-mavenoptions) : `IResourceBuilder<JavaAppExecutableResource>` `extension` `obsolete` -- Adds a Maven build step to the application model.
- [WithMavenBuild(IResourceBuilder<JavaAppExecutableResource>, string[])](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#withmavenbuild-iresourcebuilder-javaappexecutableresource-string) : `IResourceBuilder<JavaAppExecutableResource>` `extension` `ats export` -- Adds a Maven build step to the application model. The wrapper script path defaults to `mvnw` (or `mvnw.cmd` on Windows) in the resource's working directory, unless overridden with [JavaAppHostingExtension.WithWrapperPath(IResourceBuilder<JavaAppExecutableResource>, string)](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#withwrapperpath-iresourcebuilder-javaappexecutableresource-string).
- [WithMavenGoal(IResourceBuilder<JavaAppExecutableResource>, string, string[])](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#withmavengoal-iresourcebuilder-javaappexecutableresource-string-string) : `IResourceBuilder<JavaAppExecutableResource>` `extension` `ats export` -- Configures the Java application to run using a Maven goal (e.g., `spring-boot:run`). In run mode, the resource command is changed from `java` to the Maven wrapper. The wrapper script path defaults to `mvnw` (or `mvnw.cmd` on Windows) in the resource's working directory, unless overridden with [JavaAppHostingExtension.WithWrapperPath(IResourceBuilder<JavaAppExecutableResource>, string)](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#withwrapperpath-iresourcebuilder-javaappexecutableresource-string).
- [WithOtelAgent(IResourceBuilder<T>, string?)](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#withotelagent-iresourcebuilder-t-string) : `IResourceBuilder<T>` `extension` `ats export` -- Configures the OpenTelemetry Java Agent for the Java application.
- [WithWrapperPath(IResourceBuilder<JavaAppExecutableResource>, string)](/reference/api/csharp/communitytoolkit.aspire.hosting.java/javaapphostingextension/methods.md#withwrapperpath-iresourcebuilder-javaappexecutableresource-string) : `IResourceBuilder<JavaAppExecutableResource>` `extension` `ats export` -- Configures a custom build tool wrapper script path. This is useful when the wrapper script is not in the default location or has a non-standard name.
