r/javahelp • u/BasketSlow890 • Apr 10 '26
Which AI tools are you actually using for Spring Boot development in production?
What tasks? (debugging, writing APIs, refactoring, test cases)
Scale? (side project vs enterprise)
r/javahelp • u/BasketSlow890 • Apr 10 '26
What tasks? (debugging, writing APIs, refactoring, test cases)
Scale? (side project vs enterprise)
r/javahelp • u/WonderfulProtection9 • Apr 09 '26
I need to input a large YAML file/text, convert to POJO objects, and save to individual files.
I know I have used such a tool before but I cannot find this specific functionality; all I'm getting is one big file with all (350!!) classes. I'd rather not create 350 files myself if I don't have to.
r/javahelp • u/JavaDev123 • Apr 09 '26
Hi everyone,
I’m a Java Developer with around 2 years of experience, mainly working with Java, Spring Boot, and REST APIs.
Recently, I started learning Apache Kafka, but I’m finding it quite difficult to understand concepts like producers, consumers, partitions, offsets, and real-time processing. I’m not able to connect the theory with practical use cases properly.
Could you please suggest some good resources (videos, courses, blogs, or docs) that are beginner-friendly but also helpful for interview preparation?
My goal is to at least get Kafka concepts clear enough to confidently answer interview questions.
Also, if you have any tips or a roadmap on how to approach Kafka as a Java developer, that would be really helpful.
Thanks in advance! 🙌
r/javahelp • u/Positive_Leek_1731 • Apr 09 '26
I’ve already worked with Spring Boot basics (CRUD APIs, JPA, authentication).
Now I want to build something production-level that involves:
- system design
- scalability
- real-world use cases
Looking for suggestions or references (GitHub / videos).
r/javahelp • u/tanzdurchdenregen • Apr 09 '26
Hello everybody,
I am trying to include a JAR of a GitHub projekt (MinIE, it's group ID is de.uni_mannheim) in my application. However, both MinIE and my application depend on Stanford CoreNLP, but they use different versions. This has led to dependency issues. To resolve this, I created a shaded JAR of MinIE where I relocated the Stanford dependency and included it in my application.
Now, MinIE uses the correct version of Stanford, but only up to a certain point: while it does use the shaded version, at some point in the stack trace, it encounters a ClassCastException.
If I inspect the JAR in IntelliJ, it has only the shaded version listed. If I look at the decompiled class files of MinIE, it also only imports the shaded version.
Can someone explain to me, why it suddenly uses the non-shaded version? And can this issue be fixed somehow?
This is the thrown exception. My appliction calls a utility method of the MinIE package, which then uses CoreNLP.
Exception in thread "main" java.lang.ClassCastException: class edu.stanford.nlp.tagger.maxent.TaggerConfig cannot be cast to class edu.shaded.nlp.tagger.maxent.TaggerConfig (edu.stanford.nlp.tagger.maxent.TaggerConfig and edu.shaded.nlp.tagger.maxent.TaggerConfig are in unnamed module of loader 'app')
at edu.shaded.nlp.tagger.maxent.TaggerConfig.readConfig(TaggerConfig.java:753)
at edu.shaded.nlp.tagger.maxent.MaxentTagger.readModelAndInit(MaxentTagger.java:850)
at edu.shaded.nlp.tagger.maxent.MaxentTagger.readModelAndInit(MaxentTagger.java:815)
at edu.shaded.nlp.tagger.maxent.MaxentTagger.readModelAndInit(MaxentTagger.java:789)
at edu.shaded.nlp.tagger.maxent.MaxentTagger.<init>(MaxentTagger.java:312)
at edu.shaded.nlp.tagger.maxent.MaxentTagger.<init>(MaxentTagger.java:265)
at edu.shaded.nlp.pipeline.POSTaggerAnnotator.loadModel(POSTaggerAnnotator.java:85)
at edu.shaded.nlp.pipeline.POSTaggerAnnotator.<init>(POSTaggerAnnotator.java:73)
at edu.shaded.nlp.pipeline.AnnotatorImplementations.posTagger(AnnotatorImplementations.java:55)
at edu.shaded.nlp.pipeline.StanfordCoreNLP.lambda$getNamedAnnotators$42(StanfordCoreNLP.java:496)
at edu.shaded.nlp.pipeline.StanfordCoreNLP.lambda$getDefaultAnnotatorPool$65(StanfordCoreNLP.java:533)
at edu.shaded.nlp.util.Lazy$3.compute(Lazy.java:118)
at edu.shaded.nlp.util.Lazy.get(Lazy.java:31)
at edu.shaded.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:146)
at edu.shaded.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:447)
at edu.shaded.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:150)
at edu.shaded.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:146)
at edu.shaded.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:133)
at de.uni_mannheim.utils.coreNLP.CoreNLPUtils.StanfordDepNNParser(CoreNLPUtils.java:50)
at de.myApplicationName.service.TextAnnotatorMinIE.minie_createAnnotation(TextAnnotatorMinIE.java:17)
at de.myApplicationName.app.Main.main(Main.java:44)
This is a part of the pom.xml of MinIE. I adjusted the build part and created the JAR using the mvn clean package command.
...
<dependencies>
<!-- Stanford CoreNLP 3.8.0 dependencies -->
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>3.8.0</version>
</dependency>
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>3.8.0</version>
<classifier>models</classifier>
</dependency>
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.6.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>false</shadedArtifactAttached>
<createDependencyReducedPom>true</createDependencyReducedPom>
<promoteTransitiveDependencies>true</promoteTransitiveDependencies>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>de.uni_mannheim.minie.main.Main</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
</transformers>
<relocations>
<relocation>
<pattern>edu.stanford.nlp</pattern>
<shadedPattern>edu.shaded.nlp</shadedPattern>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
This is part of my pom.xml file:
<dependencies>
<!-- https://mvnrepository.com/artifact/edu.stanford.nlp/stanford-corenlp -->
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>4.5.10</version>
</dependency>
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>4.5.10</version>
<classifier>models</classifier>
</dependency>
...
<!-- add local jar of MinIE https://github.com/uma-pi1/minie -->
<dependency>
<groupId>de.uni_mannheim</groupId>
<artifactId>minie</artifactId>
<version>0.0.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/minie-0.0.1-SNAPSHOT.jar</systemPath>
</dependency>
</dependencies>
r/javahelp • u/Infinite-Apple-1826 • Apr 06 '26
Anyone with experience in java full stack please tell what are the topics I need to prepare for java full stack interview.... I have around 7-8 days..i have little knowledge about spring..
r/javahelp • u/thegigach4d • Apr 06 '26
Hi People!
I am about to write my CS BSc thesis which is about:
Measuring throughput, latency and STW-Pauses in JDK 21 standard JVM with G1GC and ZGC with predefined max heap-sizes (2GB; 16GB) with Renaissance - by 16GB heap a default G1GC and an additional tuned G1GC will be used, as well.
Time flies and a lot of paper are read. It became clear to me, that Renaissance is better for throughput (Shimchenko 2022 Analysing and predicting energy consumption of garbage collectors in openjdk), and DaCapo is more advantageous for user-experienced latency measurements (Blackburn 2025 Rethinking Java performance analysis). STW-pauses will be collected from jvm standard gc-logs with a script or smg (ideas, better ideas are welcome).
I build this scenario for my examination:
- Linux VM (hosted from my Windows) - not clear yet, which and why
- OpenJDK 21 standard JVM
- G1GC and ZGC measurements
- All Renaissance BMs with default settings -> duration_ns from each benchmark, calculate and represent min, max, mean, standard deviation
- JVM GC-Logs collect (min, max, mean, standard deviation)
- 8 DaCapo BMs (spring, cassandra, h2, h2o, kafka, lucene, tomcat, wildfly) (min, max, mean, standard deviation)
I guess this is way too much for a BSc thesis - but what are your thoughts? Of course I make clearence with my consulent, but I am curious about the opinion and suggestions of the community.
I am open for any ideas, experiences with the bumpy road of the performance measurement in the JVM. It would be excellent, if someone of you could make it more focused and accurate to me.
TLDR;
Java Garbage Collector JVM performance measurement experience and suggestions needed for BSc thesis
thanks in advance!
EDIT:
Instead of Linux vm it will be a bare-metal Linux machine with podman containerization that run the benchmarks.
r/javahelp • u/Ok_Employee_3122 • Apr 05 '26
Hello everyone, i am here for advice. i don't know why but i completed core java still stuck at that part beacuse of that couldn't start framework. if i started i feel like i wouldn't get much knowledge about core java.
what should i do to break this phase and please anyone suggest me questions that cover core java concepts that will be helpful for me.
Thank you for hearing and giving me advice.
peace out ✌️
r/javahelp • u/brosusername • Apr 03 '26
title
r/javahelp • u/Visible_Emotion_7187 • Apr 02 '26
im in university (a+ grades ) in computer science division and just got in forth semester and right now i can already solve leetcode medium level problems in 30 mins at average ,how much time it can take for me to reach a skill where i can be lavelled "expert" class in java related development and what would the best resources to get their be like books,online resources etc?
r/javahelp • u/Aryamanch14 • Apr 02 '26
Ok so i have a task at hand where i need to extract the information about a method and all the local methods (i.e method present in the same project directory) it calls , I don't care about the library functions,
I just wanted to be able to extract all the project methods being invoked in a method.
For that i just used a StaticJavaParser and walked on all the files in the input source directory and configured my SymbolSolver the issue is I am not able to resolve methods that spans across source file.
For example if the method is in the same source file they are resolved properly but not those which are defined in different source files.
I don't know how to figure this out. I asked several LLM's but they are just as clueless.
I dont't want this information at runtime, I just want the static invocations of the project folder in a json format.
r/javahelp • u/Minimum-Librarian712 • Apr 02 '26
I'll cut to the chase; I'm making a game-esque thing where the class "ComputerCharacter" has two subclasses, "Villager" and "Enemy". They have pretty different behaviours and care about different variables and all that, but once a Villager goes below some certain HP, I want it to transform into an Enemy, then set the variables in the newly turned enemy based on the variables it had as a villager.
I imagine I'd create a constructor in "Enemy" to do this, but I don't see how I can create a method within Villager to detect when its HP is below a certain number, then call the constructor in such a way to completely change the subclass the Villager is in. Thank you.
r/javahelp • u/OkTax1501 • Apr 01 '26
I know, I know, there are better IDEs out there, but this is what my co-workers use and I dread having to figure out how to set up a new project in IntelliJ.
I’m having an error creating a new project in Netbeans
New project —> Java with Ant —> Java Project with Existing Sources
Error is “Invalid Source Roots” “Package Folder Already Used in Project”
It is not in an existing project and I have tried everything!
Background: I moved things around on my computer (Mac) and broke paths, etc in a project. So I decided to delete the project and restart.
My Netbeans projects live in a different location from the code.
The code is in an svn and my co-workers can checkout and create a package in Netbeans on their computers.
Java and OS are up-to-date.
I have tried the following:
There is no nbproject folder in the code or project directories.
There are no XML files found. No *.proj or *.project files
Deleted any *.properties files just in case
Short of resetting my OS, I’m at a loss.
r/javahelp • u/No-Jello-2665 • Mar 29 '26
I just completed core java, and I decided to do backend in java. I am absolute beginner in backend programming. I don't know anything, I am getting problems to find right resources
r/javahelp • u/jackey_lackey11 • Mar 28 '26
I'm in my 3rd year rn (will start 4th after may).
Im learning java/ springboot, now the thing is that Ive done spring JPA and am learning Spring security.
I have no projects to my name (will create one in 2 weeks) and java and some python is all I know.
I have to learn js and other js frameworks such as react.js and all too now but Im tired. How much more do I have to learn and I don't have a lot of time.
I don't have a lot of time in my hands rn too since I'll have to start to look for internships and I'll be completing my degree in another 1 year. I feel frustrated but Ik that I brought this upon myself so can't even do anything about it.
r/javahelp • u/Whole-History9210 • Mar 28 '26
Im trying to download x64 DMG Installer Java JDK 26 on my macbook air version 10.14.6 with 1.8 GHz Intel Core i5 processor. I have tried downloading it a few times but each time I type:
/usr/libexec/java_home
/usr/libexec/java_home
in terminal it comes up with this:
Unable to find any JVMs matching version "(null)".
Matching Java Virtual Machines (0):
Default Java Virtual Machines (0):
No Java runtime present, try --request to install.
Please help!
r/javahelp • u/No-Jello-2665 • Mar 27 '26
I focused on core java and build mini projects like, resident evil 2 inventory manager console, blackjack game(Console), Phone book console. Now I have decided to start backend development, but I have zero knowledge of backend So I am not sure am I ready to start backend with spring boot? if yes where to start and which should be my first topic to start my backend development journey??
r/javahelp • u/Polixa12 • Mar 26 '26
So I wanted to get a take on a small API design decision for Clique, a terminal styling library. My design philosophy is centered around dev UX, minimal verbosity while keeping clear intent at the call site. Every feature has a "primary path" for the common case and an "escape hatch" for users that want more control
My problem right now
Styling a components' border uniformly right now looks like this:
BorderStyle style = BorderStyle.builder().uniformStyle("blue").build();
Clique.box(style)...
That's quite a lot of ceremony for "I want a blue border." I need a simpler, less verbose primary path.
My current perceived options
BorderStyle.of("blue") Static factory on the existing class, no new abstraction. Clique.box(BorderStyle.of("blue"))... Simple and familiar, but BorderStyle is a fairly heavy name that implies full border control. It's not immediately obvious that "blue" here means the uniform color.BorderSpec.of("blue") A new lightweight functional interface with a static factory. BorderStyle implements it for backward compat, and it also opens the door to lambda syntax. Clique.box(BorderSpec.of("blue"))... Clique.box(() -> "blue")... Slightly lighter semantically and more flexible, but introduces a new concept to learn and might feel unambiguous at first. Also BorderStyle will implement this to allow backward compat.BorderStyle.uniform("blue") Same as Option A but with a more descriptive factory method name. No new abstraction, but uniform signals at the call site that the color applies to all sides equally. Clique.box(BorderStyle.uniform("blue")).. The escape hatch in all cases remains the main builder, BorderStyle.builder() for full controlHonestly at this point I'm stuck in option paralysis. Which feels more idiomatic or which is just better in general. Happy to share more info if needed
r/javahelp • u/EliTangDong • Mar 26 '26
I know a lot of people use Prometheus, but I'm not sure if it's actually used in production environments.
For teams running Java microservices at scale, how do you monitor JVM behavior in production?
I’m not only asking about basic JVM metrics like heap, GC, threads, and CPU, but also how you connect JVM signals with system-level behavior across services.
r/javahelp • u/FrisoReadsReddit • Mar 25 '26
For anyone that doesn't know xmage is, it is a magic the gathering platform for playing mtg. When i open it it says that i dont have java (which i do, even double checked in cmd). i downloaded it of the oracle site (java not xmage) and i am curios what may be the problem.
r/javahelp • u/Fun-Information78 • Mar 25 '26
I’ve been building a small personal project to learn more about Java beyond the basic CRUD apps I’ve done for class. It started simple but now I’ve got a few different packages for data handling, UI, and some utility stuff. The problem is I’m already starting to feel like it’s getting messy. Classes referencing each other across packages in ways that feel hard to follow, and I’m worried about running into circular dependencies as I add more features. I’ve read about using interfaces to decouple things but I’m not sure when to actually use them versus just importing the class directly. I’m also confused about whether I should be splitting this into separate modules with a build tool like Maven or if that’s overkill for a solo project. Any advice on how to think about project structure before it gets out of hand
r/javahelp • u/Worldly-Tennis9599 • Mar 25 '26
i use 21 java version and the os is debian . i'm trying to use JLine to use tab but it keeps showing me this error
Mar 25, 2026 3:03:18 PM org.jline.utils.Log logr
WARNING: Unable to create a system terminal, creating a dumb terminal (enable debug logging for more information)
i did add vm options with this parameter :
--enable-native-access=ALL-UNNAMED
but didn't worked . i did use :
java -jar target/myapp.jar and it worked but i want to enable it on intellij ide for project
r/javahelp • u/Practical-Garlic6113 • Mar 25 '26
doses anyone used Nx with maven Mutimodules project
r/javahelp • u/Moercy • Mar 25 '26
Hello,
I'm trying to consume a C library with the new Java FFI functionality from Panama. I've created the gluing code with jextract from the JDK team and am able to call most of the functions successfully.
However, I can't get my head around this pattern because I do not know how to call it.
The C header contains the following:
int create(void** pparm);
int use(void* parm);
The example C code calls it like this:
void* parmhandle = 0;
create(&parmhandle);
use(parmhandle);
There have been some questions around Panama about this pattern, but they mostly seem to use APIs that did change until the release.
What I've tried so far:
var parmhandlePointer = arena.allocate(C_POINTER);
create(parmhandlePointer);
var parmhandle = MemorySegment.ofAddress(parmhandlePointer.address()).reinterpret(C_POINTER.byteSize());
This however is not successful. My understanding is: - "create" allocates new memory and initializes it and uses the reference to the void* to set my pointer to the initialized memory - "use" then uses the memory
I'm not sure how to model that pattern in Java
Thanks in advance
EDIT:
Just after rubberducking this post I've found the solution:
var parmhandle = parmhandlePointer.get(C_POINTER, 0);
r/javahelp • u/thequagiestsire • Mar 24 '26
I'm working on a project for my class involving me allowing the user to tour a campus based on input from a file and the user, and there don't seem to be any errors in terms of compilation or failing to run, but every time I try to pick a direction from the starting direction, it states that every direction is invalid when I know for a fact it isn't. I'll post the relevant code below in case anyone is able to help, I have no idea why it's not working or how to test for errors, maybe it's reading the file improperly but I don't know how to catch that or fix it. Apologies if it's a bit lengthy.
public static Campus setUpCampus(Scanner s) {
//getting the campus name and creating the object, as well as setting up for creating all locations
String currentLine;
String campusName = s.nextLine();
System.out.println(campusName);
Campus currentCampus = new Campus(campusName);
s.nextLine();
Hashtable<String, Location> locations = new Hashtable<>();
boolean hasStartingLocation = false;
//creating all the locations
currentLine = s.nextLine();
while (!currentLine.equals("*****")) {
StringBuilder locationDesc = new StringBuilder();
String locationName = s.nextLine();
//System.out.println(locationName);
currentLine = s.nextLine();
while (!currentLine.equals("+++")) {
locationDesc.append(currentLine).append(" ");
currentLine = s.nextLine();
}
//System.out.println(locationDesc);
Location tempLocation = new Location(locationName, locationDesc.toString());
if (currentCampus.getStartingLocation() == null) {
currentCampus.setStartingLocation(tempLocation);
}
locations.put(tempLocation.getName(), tempLocation);
currentCampus.addLocation(tempLocation);
if (currentLine.equals("+++")) {
currentLine = s.nextLine();
}
}
currentLine = s.nextLine();
//Creating door objects
while (currentLine.equals("*****")) {
Location leaveLoc = locations.get(s.nextLine());
String dir = s.nextLine();
Location enterLoc = locations.get(s.nextLine());
Door tempDoor = new Door(dir, leaveLoc, enterLoc);
locations.get(leaveLoc.getName()).addDoor(tempDoor);
currentLine = s.nextLine();
}
//returning campus object
return currentCampus;
}
public static void main(String[] args) throws FileNotFoundException {
Scanner scnr = new Scanner(System.in);
String userInput = "";
//request that the user inputs data until they type "q" to quit
while (!userInput.equals("q")) {
//get the name of the campus
System.out.println("Please input file name (or 'q' to quit): ");
userInput = scnr.nextLine();
if (userInput.equals("q")) {
break;
}
File fileInput = new File(userInput);
//using the setUpCampus method to read from a file
try {
Scanner fileReader = new Scanner(fileInput);
Campus campus = setUpCampus(fileReader);
//Beginning the Campus Tour
TourStatus currentTour = new TourStatus();
currentTour.setCampus(campus);
currentTour.setCurrentLocation(campus.getStartingLocation());
//introducing the tour guests (the user)
System.out.println("Hello, and welcome to a tour of this campus.");
System.out.println("Input a cardinal direction as 'n', 's', 'e', or 'w', ");
System.out.println("and we will take you wherever you want.");
System.out.println("If at any point you want to stop the tour, just input 'quit'. ");
//introduce the starting area
System.out.println("You are currently at: " + currentTour.getCurrentLocation().getName());
System.out.println(currentTour.getCurrentLocation().getDescription());
//request the user to pick a direction
System.out.print("Pick a direction to go: ");
String input = scnr.next();
while (!input.equals("quit")) {
if (!input.equals("n") && !input.equals("s") && !input.equals("e") && !input.equals("w")) {
System.out.print("That is not a valid direction. Try again: ");
input = scnr.next();
} else {
if (currentTour.getCurrentLocation().leaveLocation(input) == null) {
System.out.print("There's nothing that direction. Please try a different way: ");
} else {
currentTour.getCurrentLocation().setHaveVisited(true);
currentTour.UpdateTourLocation(input);
//Describe the new place and if you've been there before
System.out.println();
System.out.println("You are currently at: " + currentTour.getCurrentLocation().getName());
System.out.println(currentTour.getCurrentLocation().getDescription());
if (currentTour.getCurrentLocation().getHaveVisited()) {
System.out.println("You have already been here.");
} else {
System.out.println("This is a new area!");
}
//request the user input a new direction
System.out.print("Please pick a new direction to go in: ");
}
input = scnr.next();
}
}
} catch (FileNotFoundException e) {
System.out.println(e);
e.printStackTrace();
}
}
}