r/javahelp • • Mar 19 '22

REMINDER: This subreddit explicitly forbids asking for or giving solutions!

51 Upvotes

As per our Rule #5 we explicitly forbid asking for or giving solutions!

We are not a "do my assignment" service.

We firmly believe in the "teach a person to fish" philosophy instead of "feeding the fish".

We help, we guide, but we never, under absolutely no circumstances, solve.

We also do not allow plain assignment posting without the slightest effort to solve the assignments. Such content will be removed without further ado. You have to show what you have tried and ask specific questions where you are stuck.

Violations of this rule will lead to a temporary ban of a week for first offence, further violations will result in a permanent and irrevocable ban.


r/javahelp • • 12m ago

Unsolved Need Help with creating a functional map using java.

• Upvotes

Hi. I'm currently doing a project where the general basis is building a functional automated warehouse. Where users may give the robots in the warehouse instructions.

The warehouse must have 3 robots several pick up and drop off points.

My current idea was creating a text based map something like this:

__________________________________________
|C 1 - - -                 2            A |
| ______ -                                |
|      | -                               E|
|      | -            C                   |
|______| -                                |
|T - - - -         S           3        D |
|_________________________________________|

Each Letter represents a zone for either Pick up or Drop off with Zone @ being unique for a unique Charging Station.

Numbers are the robots themselves.

| and _ walls. for the robot.

I'm currently unsure how to even draw up the map itself let alone get the things to move and interact.

If anyone has any resources for this I'd very much appreciate it.

Currently aware that It'd most likely be just printing the map over and over and over again but having it so that the Robot's themselves move as we're printing it along with a proper printing of the warehouse is eluding me.

__________________________________________
|C  - - -                 2            A |
| ______ -                                |
|      | 1                               E|
|      | -            C                   |
|______| -                                |
|T - - - -         S           3        D |
|_________________________________________|

edit: this is not a request to have the map done I'm mainly just asking if people have any specific resources.

Apologzies if there is some megathread I should be going to for questions like this.


r/javahelp • • 4h ago

Lombok LSP Issues

0 Upvotes

Dear VS Code Java developers.

How do i get the vs code lsp to recognize @Getter, @Setter, etc.?
The project does compile successfully. I only get errors inline.

Example:

package com.example;

import lombok.Getter;

@Getter
public class TestClass {

    String member;

    public TestClass() {
        this.member = "Its me!";
    }
}

public class Main {

    public static void main(String[] args) {
        TestClass testClass = new TestClass();
        System.out.println(testClass.getMember());
    }
}

Error Message:

cannot find symbol
  symbol:   method getMember()
  location: variable testClass of type TestClass

settings.json:

{
    "redhat.telemetry.enabled": false,
    "java.jdt.ls.lombokSupport.enabled": true,
    "[java]": {
        "editor.defaultFormatter": "redhat.java"
    },
}

installed java versions:

A0_12520635 on  main [!] is 󰏗 v1.0-SNAPSHOT via  v25.0.4 via 🅼
❯ archlinux-java status
Available Java environments:
  java-21-openjdk
  java-25-openjdk (default)
  java-27-openjdk

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>------------</groupId>
    <artifactId>------------</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>--------------------</name>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>4.1.0</version>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <start-class>at.tugraz.App</start-class>
        <maven.compiler.release>25</maven.compiler.release>
        <maven.compiler.source>25</maven.compiler.source>
        <maven.compiler.target>25</maven.compiler.target>
        <lombok.version>1.18.46</lombok.version>
        <rest.assured.version>6.0.0</rest.assured.version>
        <junit.jupiter.version>5.9.3</junit.jupiter.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>io.rest-assured</groupId>
            <artifactId>rest-assured</artifactId>
            <version>${rest.assured.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>${junit.jupiter.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hibernate.orm</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>7.4.4.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-jpamodelgen</artifactId>
            <version>7.4.4.Final</version> <!-- Replace with your desired version -->
            <scope>provided</scope>
        </dependency>
        <!-- PostgreSQL Connector -->
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.7.13</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.1</version>
        </dependency>
        <dependency>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.antlr</groupId>
            <artifactId>antlr4</artifactId>
            <version>4.2</version>
        </dependency>
        <!-- Source: https://mvnrepository.com/artifact/org.apache.spark/spark-mllib -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-mllib_2.13</artifactId>
            <version>4.1.3</version>
            <scope>provided</scope>
        </dependency>
        <!-- Pin scala-library: Maven's nearest-wins resolution otherwise picks the
             2.13.13 pulled in (shallowly) by scala-parser-combinators, while spark-core's
             scala-reflect and most other Spark/Scala modules expect 2.13.17, causing
             NoSuchMethodError at runtime. -->
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>2.13.17</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <version>5.0.0</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.diffplug.spotless</groupId>
                <artifactId>spotless-maven-plugin</artifactId>
                <version>3.10.3</version>
                <configuration>
                    <java>
                        <prettier>
                            <devDependencies>
                                <prettier>3.5.3</prettier>
                                <prettier-plugin-java>2.8.1</prettier-plugin-java>
                            </devDependencies>
                            <configFile>${project.basedir}/.prettierrc.yaml</configFile>
                        </prettier>
                    </java>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>install-git-pre-push-hook</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>install-git-pre-push-hook</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

I have tried searching for this issue but have found nothing for the last 4 hours. Am i dumb?


r/javahelp • • 12h ago

Java udemy course

2 Upvotes

I bought a java course in udemy, learning personally overwhelmed me and less motivated, please I need a learning partner


r/javahelp • • 2d ago

QF-Test, Squish or Ranorex for cross platform GUI testing? Swing app on Windows, mac and Linux.

4 Upvotes

Desktop client, Swing with some JavaFX, ships on all three. GUI testing has been manual for years and I finally have budget to fix it. QF-Test is the obvious pick since it reads the Java component tree properly. Squish covers Java too and more besides. Ranorex ends at Windows every time I look, so it’s out. My hesitation is that all three become a test codebase and our QA people don’t write Java. So it lands on a dev and in two years it’s one person’s side project nobody wants to touch. Which is why I looked at the agent based stuff at all. For cross platform desktop, AskUI came up because tests are markdown files with numbered steps and an expected result each, driven off the screen instead of the component tree, so a layout manager swap costs nothing. Authoring app is Windows and macOS only though, Linux comes from their runtime as a remote target. So to anyone running GUI tests on a cross platform Java client, what did you pick and who maintains it now?


r/javahelp • • 2d ago

Codeless Do guys know how java's mascot looks like?

2 Upvotes

I just had a question about Java... How Duke looks like? (also duke is the mascot of java.)


r/javahelp • • 2d ago

Workaround Is there safe way to intercept SIGINT still?

7 Upvotes

I'm doing a JavaFX program, and I noticed that SIGINT puts my app into a hanged state. I believe that some rendering threads using GTK close down before the JFX thread is ready, leaving it hung. I've worked around it by using the Signal handler class to call Platform.exit, but it's one of the internal classes of the JDK.

addShutdownHook doesn't solve this. By time it's called, the App has reached a state it can't recover from.


r/javahelp • • 3d ago

Want help regarding some scenarios...

3 Upvotes

Hello Devs,

I have some doubts, like I recently started learning Java and in map data structure .get() returns null if key is not there. like what if our value is null. can we distinguish between null as a value or key not exist without doing .contains() ?


r/javahelp • • 4d ago

Can anyone help me with pringboot microservices learning resources

6 Upvotes

Hi everyone,

I know basic java and springbooot. I wanna start learning microservices with kafka, authentication, docker, kubernetes. Does anyone have any youtube videos that cover all these topics? If not, could you provide a roadmap to learn these as quickly as possible?

Thankyou!


r/javahelp • • 4d ago

How can get started in java

0 Upvotes

Hey everyone.
I am a computer science student, and I must start coding with Java.

I tried Eclipse and netbeans but none were valid on my machine.
so if someone has an alternate IDE I will much appreciated.


r/javahelp • • 9d ago

Homework What the hell is going on?

11 Upvotes

Hello everybody, I am so lost. I just started learning Java and while i think its extremely interesting, and can loose track of time. It is also very complicated, well atleast to me since i dont have any prior experience.

I just ”learnt” to write my first Hello World! Code. But tbh i only copied the text straight off a youtube video.

Thing is i understand the main command, like: System.out.println(”Hello World!”);

But what is this whole main class and static void things? Not to mention all the {} symbols that seem to be oddly placed?😅

If anyone could explain or know a good youtube video or similiar to learn id appreciate it a lot!


r/javahelp • • 13d ago

Exam difficulty Question

0 Upvotes

Hello, im currently taking an Intro to java(CS46a), and had just taken the first exam of the class, and had an hour and fifteen minutes to do these 20 questions which consist of 10 MCQ(0 - 10) and 10 free Responce(11-20), and we dont get notes/calculator. Is this a normal level of "difficulty" or length for a intro to java class , asking around like 10-13 people i heard ranges from 4-8 points solely from the MCQ portion and people had finished or attempted 2-4 of the free Responce questions. Am i just a noob 😭?

Each MCQ = 2points
Free responce points in order of 11-20 = 4, 4, 4, 4, 4, 12, 12, 12, 12, 12

Total = points / 100

Question 1

What does this code print?

int a = 17;
int b = 5;
double c = a % b * 2 + a / b / 2.0;
System.out.println(c);

5.0

5.5

6.0

4.5

Question 2

What does this code print?

String course = "Intro to Java";
int pos = course.indexOf("t");
String part = course.substring(pos, pos + 3);
System.out.println(part + course.length());

tro 13

ntr13

tro13

tro12

Question 3

What does this code print?

String name = "ada";
name.toUpperCase();
String upper = name.toUpperCase();
name = upper.replace("A", "a").substring(1);
System.out.println(name + " " + upper);

Da ADA

da ADA

DA ADA

Da aDa

Question 4

What does the last statement print?

public class Box
{
    private int width;
    private int height;

    public Box() { width = 1; height = 1; }
    public Box(int side) { width = side; height = side; }
    public Box(int w, int h) { width = w; height = h; }

    public int area() { return width * height; }
}

// in the main method of another class:
Box a = new Box();
Box b = new Box(3);
Box c = new Box(2, 5);
System.out.println("Total: " + a.area() + b.area() + c.area());

Total: 20

Total: 1 9 10

Nothing. The class does not compile, because it has three constructors.

Total: 1910

Question 5

The user types 42 and presses Enter, then types blue sky and presses Enter. What does this code print?

Scanner in = new Scanner(System.in);
int n = in.nextInt();
String a = in.nextLine();
String b = in.next();
System.out.println(n + "[" + a + "][" + b + "]");

42[blue sky][]

42[][blue]

42[][blue sky]

42[blue][sky]

Question 6

What does this code print?

int x = 3;
int y = --x + x++ * 3;
System.out.println(x + " " + y);  

3 8

2 8

3 9

 

3 11

Question 7

What does this code print?

char grade = 'B';
String msg = "";
switch (grade)
{
    case 'A': msg += "great ";
    case 'B': msg += "good ";
    case 'C': msg += "ok ";
              break;
    default:  msg += "retry ";
}
System.out.println(msg);

good

good ok

good ok retry

great good ok

Question 8

What does this code print?

String s1 = "java";
String s2 = new String("java");
String s3 = s2;
s2 = "java";
System.out.print((s1 == s2) + " ");
System.out.print((s1 == s3) + " ");
System.out.println(s1.equals(s3));

false false true

true true true

true false true

false true true

Question 9

What happens when this code runs?

int a = 5;
int b = 0;
boolean ok = (b != 0 && a / b > 1) || (a++ > 5 && b++ == 0);
System.out.println(ok + " " + a + " " + b);  

It prints true 6 1

It prints false 6 1

It crashes, because of the division by zero

It prints false 6 0

Question 10

What does this code print?

int count = 0;
for (int i = 1; i <= 3; i++)
{
    for (int j = 1; j <= 3; j++)
    {
        if (j == i)
        {
            continue;
        }
        if (i + j > 4)
        {
            break;
        }
        count += j;
    }
}
System.out.println(count);

Each numbered blank takes one expression or one statement. Write the code that belongs in each blank.

5 

7

8

10

Question 11

Not yet graded / 4 pts

Complete the class so that both constructors set both fields. The second constructor must reuse the first one, and it gives the flight 150 seats.

public class Flight
{
    private String code;
    private int seats;

    public Flight(String code, int count)
    {
        ______(1)______ = code;
        seats = count;
    }

    public Flight(String code)
    {
        ______(2)______;
    }
}

Your Answer:

Question 12

Not yet graded / 4 pts

The user types 2 and presses Enter, then types Green Tea and presses Enter. Complete the code so that it prints exactly Green Tea (2) = $7.00 followed by a new line.

Scanner in = new Scanner(System.in);
int quantity = in.nextInt();
______(1)______;
String item = in.nextLine();
double total = quantity * 3.5;
System.out.printf("______(2)______", item, quantity, total);

Answer:

Question 13

Not yet graded / 4 pts

Complete the loop so that it prints every second letter of the word, starting with the second letter: eetr

String word = "semester";
for (int i = ______(1)______; i < word.length(); ______(2)______)
{
    System.out.print(word.charAt(i));
}

Your Answer:

Question 14

Not yet graded / 4 pts

Complete the code so that distance holds how far apart x and y are, which is never negative, and label is "pass" for a score of 60 or more and "fail" otherwise.

int distance = (x > y) ? ______(1)______;
String label = (score >= 60) ? ______(2)______;

Your Answer:

Question 15

Not yet graded / 4 pts

The method returns how many times a digit of n is equal to the digit next to it. For example, countRepeats(1225) is 1, countRepeats(77777) is 4, and countRepeats(1212) is 0. Assume n is positive.

public static int countRepeats(int n)
{
    int count = 0;
    int right = n % 10;
    n = n / 10;
    while (n > 0)
    {
        int left = n % 10;
        if (______(1)______)
        {
            count++;
        }
        ______(2)______;
        n = n / 10;
    }
    return count;
}

Your Answer:

Question 16

Not yet graded / 12 pts

Primitive and reference variables

Part A (4 points): In two or three sentences, explain what a primitive variable stores, what a reference variable stores, and what the assignment b = a copies in each case.

Part B (4 points): What does this code print?

int x = 10;
int y = x;
y = y * 2;

String p = "sun";
String q = p;
p = p.toUpperCase();

System.out.println(x + " " + y + " " + p + " " + q);

Part C (4 points): Does the line p = p.toUpperCase(); change the String object that q refers to? Explain why or why not.

Your Answer:

Question 17

Not yet graded / 12 pts

Tracing decisions

public static String rate(int temp, boolean raining)
{
    String result;
    if (temp > 85 || temp < 40)
    {
        result = "stay";
    }
    else if (raining && temp < 60)
    {
        result = "coat";
    }
    else if (!raining)
    {
        result = "walk";
        if (temp >= 70)
        {
            result += "+water";
        }
    }
    else
    {
        result = "umbrella";
    }
    return result;
}

Part A (9 points): What does each call return? rate(90, false) rate(55, true) rate(75, false)

Part B (3 points): Give one value of temp and one value of raining for which rate returns "umbrella".

Your Answer: 

Question 18

Not yet graded / 12 pts

Debugging. The class below counts the steps of a walker. It contains exactly three bugs.

 1  public class StepCounter
 2  {
 3      private int steps;
 4      private int goal;
 5
 6      public StepCounter(int goal)
 7      {
 8          goal = goal;
 9          steps = 0;
10      }
11
12      // Adds one walk. Zero or negative counts are ignored.
13      public void addWalk(int count)
14      {
15          if (count > 0);
16          {
17              steps += count;
18          }
19      }
20
21      // Returns true once the goal has been reached.
22      public boolean reachedGoal()
23      {
24          if (steps >= goal)
25          {
26              return true;
27          }
28      }
29  }

Part A (9 points): For each bug, give the line number or numbers, say whether it is a compile-time error or a logic error, and explain how to fix it.

Part B (3 points): After all three bugs are fixed, what does this code print?

StepCounter c = new StepCounter(5000);
c.addWalk(3000);
c.addWalk(-500);
System.out.print(c.reachedGoal() + " ");
c.addWalk(2000);
System.out.println(c.reachedGoal());

Your Answer:

Question 19

Not yet graded / 12 pts

Writing a method. The ParkingMeter class below is missing its insert method. Write the complete method, including its first line.

insert is a public method that takes one int, the value of a coin in cents, and returns a boolean. The meter accepts only quarters (25 cents) and dollar coins (100 cents); any other value is rejected. Every 25 cents buys 15 minutes. The meter holds at most 120 minutes, so a coin that would take it above 120 is rejected too. When a coin is rejected, nothing changes and the method returns false. Otherwise, the method adds the minutes, adds one to coins, and returns true.

Example: on a new meter, insert(10) returns false, insert(100) returns true and gives 60 minutes, and after a second insert(100), the call insert(25) returns false.

public class ParkingMeter
{
    private int minutes;     // minutes left on the meter
    private int coins;       // how many coins were accepted

    public ParkingMeter()
    {
        minutes = 0;
        coins = 0;
    }

    // the insert method goes here
}

Your Answer:

Question 20

Not yet graded / 12 pts

Writing a method with a loop. Write a complete static method named compress, including its first line. It takes a String and returns a String in which every run of two or more equal characters next to each other is replaced by the character followed by the length of the run. A character that is not part of a run stays as it is.

Examples: compress("aaabcc") returns "a3bc2", compress("abc") returns "abc", compress("zzzz") returns "z4", and compress("") returns "".

Do not use arrays, and do not use any String method other than length() and charAt().

Your Answer:


r/javahelp • • 13d ago

Need Advice for AI with Java / AI with Python. Based on Market for Java AI

0 Upvotes

I have 4+ YOE as Java Developer, and trying to learn AI. Came across few tutorials about SPRING AI/ LangChain4j. I am so confused about learning AI with Java or AI with Python [langchain, LangGraph etc].

It would be great if folks from Java community could guide me with this so that I can make a decision.


r/javahelp • • 16d ago

Workaround Java 21 static-analysis engine for dependency and call graphs what edge cases am I missing?

6 Upvotes

Hi everyone,

I’ve been building a Java 21 code-analysis engine and would love some feedback on the dependency resolution.

It uses JavaParser and resolves imports, same-package classes, inheritance, method calls, etc. I’m mainly trying to avoid false dependency edges in complex Java codebases.

GitHub: https://github.com/abhishek94443/CodeContext-Java

Would appreciate any feedback on edge cases or things I may be missing.


r/javahelp • • 18d ago

I need a guidance regarding how to build full stack java application

6 Upvotes

Hey everyone, I’d love to get the community’s perspective on building production-grade, scalable full-stack applications with Spring Boot—specifically from a solo developer standpoint.

​When you're building a scalable full-stack Java app entirely on your own, how do you approach the architecture and tooling?

​A few specific areas I'm curious about:

​Tech Stack & Tools: What are the non-negotiable components in your stack right now (e.g., Spring Boot 3 + Virtual Threads, Postgres/Redis, Kafka/RabbitMQ, Docker, React/Next.js vs. HTMX/Thymeleaf)? What tools are currently standard or trending in the market for solo full-stack setups?

​Build vs. Buy / Scratch vs. Frameworks: As a single developer, your time is limited. How much do you build from scratch versus relying on managed services/third-party tools (like managed Auth, SaaS components, pre-built UI libraries)?

​Solo Execution: Is it realistic to handle end-to-end architecture, backend, frontend, database tuning, and DevOps all by yourself, or at what point do you usually seek external help/collaborators?


r/javahelp • • 19d ago

Solved Is Java losing popularity in 3-5 years?

7 Upvotes

So I'm learning java for 3 months now, even made a few simple projects, though my friend is telling me that java might lose to something like dart and its framework flutter, I read a little bit about it, but Im unable to get a conclusion if he is right, if someone has experince in that, please tell me your opinion


r/javahelp • • 19d ago

Solved Is my code too massive?

4 Upvotes
import java.io.*;
import java.util.*;
import java.net.*;

class server{

    private Socket s = null;
    private ServerSocket ss = null;;
    private DataInputStream din = null;
    private DataOutputStream dout = null;
    static Vector<ClientHandler> array = new Vector<>();
    private HashMap<String, String> login = new HashMap<>();
    void main(String[] args) throws IOException
    {
        // initialize
        try {
//            BufferedWriter bw = new BufferedWriter(new FileWriter("logindata.txt")); idk yet
            BufferedReader br = new BufferedReader(new FileReader("logindata.txt"));
            StringTokenizer st = null;
            String templine = "";
            String loginName = "";
            String pass = "";

            while(((templine = br.readLine()) != null)){
                st = new StringTokenizer(templine, ": ");
                if(st.hasMoreTokens()){
                    loginName = st.nextToken();
                }
                if(st.hasMoreTokens()){
                    pass = st.nextToken();
                }

                login.put(loginName, pass);
                loginName = "";
                pass = "";
            }

        }
        catch(FileNotFoundException i){
            System.out.println("Failed to initialize login file");
        }


        String receivedName = "";
        String receivedPass = ""; // <TODO> encrypt passwords after finishing filework 
        int i = 0;
        ss = new ServerSocket(5001);
        boolean userExists = false;
        while(true)
        {
            s = ss.accept();
            din = new DataInputStream(new BufferedInputStream(s.getInputStream()));
            dout = new DataOutputStream(new BufferedOutputStream(s.getOutputStream()));

            receivedName = din.readUTF();

            for(Map.Entry<String, String> entry : login.entrySet()){
                if(entry.getValue().equals(receivedName)){
                    userExists = true;
                    break;
                }
            }

            if(userExists){
                dout.writeUTF("User found, enter your password: ");
                dout.flush();
            }
            else{
                dout.writeUTF("User was not found, u may register by making a password: "); // <TODO> make a check if password was written correctly
            }
//<TODO> handle passwords
            ClientHandler client = new ClientHandler(s, receivedName, din, dout);
            System.out.println("User " + receivedName + " Accepted");

            Thread t = new Thread(client);

            array.add(client);

            t.start();

            i++;
        }

    }
}

So I'm making a simple messenger as my first project, though now when I'm working on it it seems VERY massive to me, is it normal in other projects or am I supposed to break it into smaller parts?


r/javahelp • • 19d ago

Big monolith app using Wildfly

6 Upvotes

I'm managing a big and old monolith Wildfly app. I'm not doing development, I'm on the DevOps team.

It's using many subsystem: infinispan, jgroups, elytron, activemq-messaging, transactions, etc

Can anyone recommends some resource to learning more about these ?

All I found on google was technical docs like https://docs.wildfly.org/34/wildscribe/subsystem/jgroups/index.html

There's no tutorial, not beginner friendly things.

The Wildfly official doc (Subsystem configuration) is also very vague. It assume that we're already familiar with its concepts.

For example, I know what a transaction is but I don't know anything about the transaction subsystem.

  • Are subsystem transparent to dev team or does they need additional library on using these ?
  • Should I migrate to a separate ActiveMQ server and remove that subsystem ?
  • So many question ...

Thanks !


r/javahelp • • 19d ago

Final Year Project Help

1 Upvotes

Hi there I wanted to ask everyone to assess my FYP. WOuld you use this for your projects ? Is it a good enough project for a final year . Does it have some scope in the industry ?

The main goal of this project is to design and implement a tool for PostgreSQL pre-deployment risk analysis that evaluates SQL schema migrations to identify affected database objects, estimate locking implications, detect limited application-schema incompatibilities in Java/Spring Boot JPA projects, and output actionable risk assessments.

The objectives are as follows:

1.       Develop a component capable of extracting supported structural DDL operations into a normalized intermediate representation.

2.       Construct a schema dependency graph model using graph data structures to represent structural relationships between database tables, columns, indexes, primary keys, foreign keys, and constraints.

3.       Analyze incoming migrations against the schema dependency graph to identify affected database objects represented within the supported dependency model.

4.       Formulate a PostgreSQL-specific operational rule set that maps supported DDL operations to their known locking characteristics and table rewrite behaviors.

5.       Develop a module capable of limited static analysis for Java/Spring Boot JPA projects to detect source-code references to renamed, modified, or dropped schema objects in entities, repositories, and explicit SQL strings.

6.       Implement a transparent, rule-based risk scoring and explanation engine that assigns a risk rating (LOW, MEDIUM, HIGH) accompanied by clear textual evidence.

7.       Construct experimental tests to execute PostgreSQL migration scenarios across small and medium database sizes. (for research validation only, not as a permanent part of the system)

8.       Evaluate Schema Sentinel’s static risk predictions against experimentally observed blocking locks, and application compatibility failures in a controlled PostgreSQL environment for test cases.

  1. Empirically quantify the effectiveness of a unified cross-domain pipeline against isolated tools, measuring trade-offs in detection accuracy, false positives, and analysis performance.

This proposal got rejected because the panel said it was too easy and not significant as either a project or as research.

should i change the idea to more difficult and novel research ?

I have some ideas for those but i am not sure they can be completed in 1 year.

here is my proposal with all the details and research gap https://docs.google.com/document/d/1CMopT185XCoZVYBcgtVpN7N69DIP0Eyw/edit?usp=drive_link&ouid=116125887586128528145&rtpof=true&sd=true

EDIT :

The project is a final year project for my university. But they dismissed it on the following points

  1. The project is too easy
  2. The scope is too narrow
  3. There is no research contribution

For the current proposal to be accepted they told me to do market analysis and bring proof that the project would be used by a develper community.

OR

  1. bring a company backed project
  2. Bring a novel research proposal

r/javahelp • • 23d ago

Few words on learning Java

12 Upvotes

I am no different to anyone starting fresh on this thread, unsure and unsecure of what will be in the next 2 - 3 months, years and so on... but one thing I am sure of, if I don't do anything I will remaing behind no matter what.

Here is the path I took:

\- learning Java on Codecademy (I am a jurnior JS developer/mediocre developer)

\- solving problems on CodingBat (https://codingbat.com/java)

\- I would try some real life projects but I don't know what to do

Is this the best path? probably not. But it is something. I jumped head first not thinking if this is the right approach and somewhow I managed to stick to it just enough to have a tiny idea of what this is language is about.

If you have any questions feel free to DM me, I will helpl the best I can.

Cheers


r/javahelp • • 22d ago

Virtual threads + semaphore in front of BCrypt gave me +28% throughput, but the container is still pinned at its CPU limit. What to do next to optimize it?

1 Upvotes

I'm load testing an auth service (Spring Boot, Java, Redis, PostgreSQL, Docker on a t3.large, k6). I replaced a dedicated 2-thread BCrypt pool (20-slot queue) with virtual threads plus a 6-permit semaphore.

Results at the same 40 RPS target (queue → virtual threads + semaphore):

  • Throughput: 20.3 → 26.06 OPS (+28%). OPS = operations per second, the full k6 iteration mix.
  • Login p95: 28.5s → 20.1s
  • Timeouts: 43 → 0

That's still only ~65% of target, and a 20s login is unusable.

At 50 RPS throughput plateaued at ~28 OPS. docker stats showed the auth container averaging ~145% CPU (peak ~153%). My compose file sets a 1.5 CPU limit. Endpoints that were ~85ms p95 at 40 RPS slid to ~2s.

My read: virtual threads help with blocking I/O, not CPU-bound work. I think the gain came from removing the fast-reject queue rather than from adding capacity, but I haven't isolated that.

Caveats: 41% of my test traffic is logins (unrealistic), and I haven't measured a single-hash time yet.

The puzzle: BCrypt strength is 4 in my load-test config, which I'd expect to cost ~1-2ms per hash. At ~10 logins/sec, that shouldn't pin 1.5 cores. Suspects: the cost factor baked into the pre-seeded hashes (matches() uses the stored cost), JWT signing, GC, or my executor/semaphore wiring.

What would you profile first: async-profiler, JFR, thread dumps?


r/javahelp • • 23d ago

Obfuscating class files

3 Upvotes

Has anyone successfully obfuscated their .class files? I tried using GraalVM for JavaFX project (including Gluon's version of GraalVM) but it always failed to complete.


r/javahelp • • 23d ago

seeing/editing code in a .jar file

3 Upvotes

im not very good at coding, or anything and i want to see the code in a .jar file and possibly edit it. im not sure if this is the right place, but any help would be appreciated. i did open the code in notepad and it didnt show it correctly, id really appreciate if somebody could maybe attach a link to a simple website where i can easily view code in the file and if possible even edit it


r/javahelp • • 24d ago

State of Java Desktop

6 Upvotes

Thinking about local-first, desktop applications. https://sombriks.com.br/blog/0097-state-of-java-desktop/


r/javahelp • • 24d ago

can not create Java Virtual Machine

4 Upvotes

I'm trying to run VosViewer, but it says:

---------------------------

Java Virtual Machine Launcher

---------------------------

Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit.

I use a laptop with AMD, 64-bit, and have installed the latest Java (1.8.0_503_b01). Also, I have set the environment into 4000MB of memory.

Do you have any clue how to handle it?

Thanks.