Maven không thể thấy JDK

Đợt trước máy mình phải cài lại nên là java và maven có phần bị lỗi khi compile và cả package. Các cao nhân giúp hộ mình với:

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.harrycoder.discordbot</groupId>
  <artifactId>MiraiBot</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>MiraiBot</name>
  <url>http://maven.apache.org</url>

  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>
  
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>net.dv8tion</groupId>
      <artifactId>JDA</artifactId>
      <version>3.7.1_386</version>
    </dependency>
  </dependencies>

  <repositories>
    <repository>
      <id>jcenter</id>
      <name>jcenter-bintray</name>
      <url>http://jcenter.bintray.com</url> 
    </repository>
  </repositories>
</project>

Sau khi mình chạy cả mvn install với mvn package thì nó ra lỗi củ chuối sau:

No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

Dạo này làm việc với java hơi bị mệt mỏi sau đợt phải cài lại win quá :cry:

1 Like

Em có set enviroment variable JAVA_HOME chưa ?
nếu chưa thì set rồi restart lại máy

Còn không thì chơi cách chuối nhất dưới đây

<build>
...
    <plugins>
    ...
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <fork>true</fork>
                <executable><!--Thư mục đi đến javac.exe--></executable>
            </configuration>
        </plugin>
    </plugins>
</build>
2 Likes

Bạn thử cách này xem

1 Like

Cách chuối nhất lại ok anh à :))

1 Like

Sorry anh nha em xài vscode.
Dù sao cảm ơn anh đã trả lời

3 Likes

Khi đã dùng Maven hay Gradle thì ko thể sử dụng cách này để giải quyết việc set biến môi trường được.
Người khác clone source về thì sẽ phải config lại à ?

Set JAVA_HOME vào JDK location
Set PATH với JAVA_HOME/bin
Trong bin sẽ bao gồm java.exe(JRE) và javac.exe(Compiller)
Khi run application thì Windows OS sẽ load các biến trong PATH để xem có application nào thực thi được không.
Cách nào cũng tương tự như trên UNIX

https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?