标签: module-path

将 Next.js 应用程序中的 Pages 文件夹移动到 src 文件夹

create-next-appNext.js 应用程序中,我想将pages根目录中的文件夹移动到一个src文件夹中。我添加了jsconfig.json代码(如下),但是现在我收到错误消息“404 | 找不到此页面。” 有人有任何见解吗?(抱歉,网络开发初学者)

{
    "compilerOptions": {
        "baseUrl": "src"
    }
}


Run Code Online (Sandbox Code Playgroud)

absolute-path next.js module-path

28
推荐指数
4
解决办法
4万
查看次数

在Eclipse中,modulepath和classpath之间有什么区别?

在Eclipse中,modulepath和classpath之间有什么区别,我应该使用哪一个在lib文件夹中添加jar?为什么JRE系统库出现在模块路径中?

java eclipse classpath module-path

27
推荐指数
1
解决办法
2万
查看次数

是否可以在javac(JDK 9)中混合使用--class-path和--module-path?

当我编译一个依赖于我之前编译的其他模块的模块时,我必须指定该--module-path <directory>选项.这使我依赖的模块可见.

但与此同时,我还想让一些非模块化的Jar文件可见.但是,如果不使它们成为自动模块并且只是在--class-path some.jar旁边指定--module-path <directory>,那么javac似乎忽略了claspath并抛出"package yyy not found"和其他"未找到"错误.

我可以理解,使用--class-path--module-path在同一个(编译)时间是非法的,但javac并没有以任何方式警告我.

java classpath java-9 module-path

23
推荐指数
2
解决办法
8949
查看次数

找不到Java 9自动模块

我正在尝试定义Java 9模块.我已经定义了类似的东西:

module my.module.name {

}
Run Code Online (Sandbox Code Playgroud)

然后我的许多文件开始给我错误,他们找不到一些包.然后我使用了IntelliJ的自动帮助功能,它在我的module-info.java中添加了几个"require"语句.所以它变得像:

module my.module.name {
    requires spring.web;
    requires sshd.core;
    requires com.fasterxml.jackson.core;
    ....
}
Run Code Online (Sandbox Code Playgroud)

现在IntelliJ显示我的所有代码没有错误.但是当我在"Maven Projects"窗口中单击"compile"时(我正在使用Maven 3.5.3和Oracle JDK 10进行编译),它告诉我以下内容:

src/main/java/module-info.java:[2,20] module not found: spring.web
src/main/java/module-info.java:[11,18] module not found: sshd.core
src/main/java/module-info.java:[13,35] module not found: com.fasterxml.jackson.core
...
same for the other modules I "require".
Run Code Online (Sandbox Code Playgroud)

据我所知,未定义为模块的第三方库会生成"自动"模块.所以我发现了我需要的其中一个罐子:

C:\Users\<my username>\.m2\repository\org\springframework\spring-web\5.0.5.RELEASE\spring-web-5.0.5.RELEASE.jar
Run Code Online (Sandbox Code Playgroud)

并希望使用以下命令查看"自动"模块的名称:

jar.exe" --file=spring-web-5.0.5.RELEASE.jar --describe-module

No module descriptor found. Derived automatic module.

spring.web@5.0.5.RELEASE automatic
...
Run Code Online (Sandbox Code Playgroud)

所以根据我的调查,我"需要"的模块的名称是正确的!我错过了什么?我为什么得到

module not found: spring.web
Run Code Online (Sandbox Code Playgroud)

和其他模块一样吗?我错过了一些路径或什么?

编辑:根据要求,这是我的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> …
Run Code Online (Sandbox Code Playgroud)

java intellij-idea maven java-9 module-path

9
推荐指数
1
解决办法
2955
查看次数

致命错误编译无效标志 - 模块路径

我有一个项目.最初它是一个单一的模块项目,结构如此

java-cloud-sample\
    src\
        main\
            java
    pom.xml
Run Code Online (Sandbox Code Playgroud)

我决定将它变成一个多模块结构 - java 9无论如何我都会使用它.所以我把它分开了

java-cloud-sample\
    java-cloud-rest-api\
        src\
        pom.xml
    pom.xml
Run Code Online (Sandbox Code Playgroud)

root 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>com.lapots.breed.platform.cloud</groupId>
    <artifactId>java-cloud-sample</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <modules>
        <module>java-cloud-rest-api</module>
    </modules>

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

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <maven.compiler.source>1.9</maven.compiler.source>
        <maven.compiler.target>1.9</maven.compiler.target>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.6.2</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.0.0</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.0.1</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals><goal>copy-dependencies</goal></goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>


</project>
Run Code Online (Sandbox Code Playgroud)

模块pom.xml看起来像这样

<?xml version="1.0" …
Run Code Online (Sandbox Code Playgroud)

java maven java-9 java-module module-path

8
推荐指数
1
解决办法
1万
查看次数

使用Java 9将自定义JMOD添加到模块路径

JMOD用这样的jmod工具创建了一个简单的文件

$JAVA_HOME/bin/jmod create --class-path classes test/samples.jmod
Run Code Online (Sandbox Code Playgroud)

接下来,我尝试通过运行以下命令在该模块中执行一个类:

java -mp test -m de.mypackage/de.mypackage.Test
Run Code Online (Sandbox Code Playgroud)

这导致以下异常:

Error occurred during initialization of VM
java.lang.module.ResolutionException: JMOD files not supported: test/samples.jmod
  at java.lang.module.Resolver.findWithBeforeFinder(java.base@9-ea/Resolver.java:729)
  at java.lang.module.Resolver.resolveRequires(java.base@9-ea/Resolver.java:86)
  at java.lang.module.Configuration.resolveRequiresAndUses(java.base@9-ea/Configuration.java:370)
  at java.lang.module.ModuleDescriptor$1.resolveRequiresAndUses(java.base@9-ea/ModuleDescriptor.java:1986)
  at jdk.internal.module.ModuleBootstrap.boot(java.base@9-ea/ModuleBootstrap.java:263)
  at java.lang.System.initPhase2(java.base@9-ea/System.java:1928)
Run Code Online (Sandbox Code Playgroud)

如果我只是将我的classes目录(我用来创建JMOD文件)设置为模块路径,那么一切都按预期工作.

通常不可能JMOD在模块路径上有文件吗?如果是这种情况,有什么理由吗?

java java-platform-module-system java-9 module-path

7
推荐指数
1
解决办法
2340
查看次数

默认情况下,哪些系统模块在模块路径上?

当我通过java -cp(没有--add-modules--limit-modules)运行应用程序时,某些Java系统模块是可观察的,而其他的则不是.

例如,所有java.se模块都是可观察的.所有java.se.ee模块都无法观察到.我知道javafx.*模块是可观察的.jdk.unsupported并且jdk.shell也是可观察的.

所以,我的假设是正确的:如果没有--add-modules并且--limit-modules被指定,那么可观察的系统模块集包括所有系统模块,除了java.se.ee

有没有可靠的方法来了解默认的可观察系统模块的确切列表?我知道有一个--list-modules选项,但它列出了所有模块,包括java.se.ee.

java java-platform-module-system java-9 module-path

7
推荐指数
1
解决办法
1619
查看次数

VSCode 中的 JavaFX-11:错误:无法找到或加载主类 Files\Java\javafx-sdk-11.0.2\lib

我一直在尝试在 Visual Studio Code 中设置 JavaFX-11。

我找到了这篇JavaFX-11 with VSCode 文章,其中解释了如何执行此操作,并按照步骤操作。

但是,我需要通过vmArgslaunch.json文件中添加一个条目来包含 JavaFX SDK 的模块路径:

{
"configurations": [
    {
        "type": "java",
        "name": "CodeLens (Launch) - Main",
        "request": "launch",
        "vmArgs": "--module-path C:\\Program Files\\Java\\javafx-sdk-11.0.2\\lib --add-modules javafx.controls,javafx.fxml",
        "mainClass": "hellofx.Main",
        "projectName": "hellofx"
    }
]
Run Code Online (Sandbox Code Playgroud)

}

正如您在vmArgs条目中看到的,是我到 JavaFX SDK 的本地路径。但是,当我尝试运行该程序时,出现以下错误:

错误:无法找到或加载主类 Files\Java\javafx-sdk-11.0.2\lib 导致:java.lang.ClassNotFoundException: Files\Java\javafx-sdk-11.0.2\lib

在过去的几个小时里,我一直试图弄清楚为什么它不起作用。我的论点写错了吗?我看到有.jmods文件。我应该下载那些文件吗?还有其他方法可以指定模块路径吗?

值得一提的是,我在 Windows 10 中运行 Visual Studio Code,所以我必须使用转义序列来使用反斜杠。

javafx visual-studio-code module-path java-11 javafx-11

7
推荐指数
1
解决办法
9412
查看次数

Java 9自动模块依赖关系无法解析/找不到模块

我正在尝试将一些遗留应用程序迁移到新的Java 9模块系统,以加强其封装.

我从外向内开始,假设外围的类具有最少的外部依赖性.

正如您所期望的那样,我已经宣布了一个非常开放的模块:

module com.example.user {   
    exports com.example.user;
}
Run Code Online (Sandbox Code Playgroud)

这会立即打破整个项目(在所有类中),突然每个外部依赖项的导入都不再解析(导致超过1k的Java问题):

导入com.atherexample无法解析

无法解析导入org.springframework

等等

同一项目中的本地软件包com.example.price仍可正常工作 - java.util等等.

使用Maven管理所有外部依赖项.在(Eclipse项目)构建路径中,我仍然可以将它们视为"Classpath"依赖项 - 但只能看到"Modulepath"中的JRE系统库.

这两个概念可以共存吗?目前,似乎module-info.java在项目中的任何位置,所有类路径依赖都停止工作?

我读过关于使用自动模块的内容,这似乎意味着您可以通过将它们包含在模块路径中来使用传统/非模块化jar,然后通过文件名引用它们.他们使用的例子:

module com.foo.myapp {
  requires guava;  // guava not yet modularised, so use the filename
}
Run Code Online (Sandbox Code Playgroud)

我找不到其他信息,但这似乎与Eclipse在自动生成module-info.java时使用的约定相符:

spring-core-4.3.8.RELEASE.jar
Run Code Online (Sandbox Code Playgroud)

变为:

requires spring.core;
Run Code Online (Sandbox Code Playgroud)

但是,这仍然导致Eclipse报告的Java错误:

spring.core无法解析为模块

Maven报道:

[ERROR] module-info.java:[39,16] error: module not found: spring.core
Run Code Online (Sandbox Code Playgroud)

...并且项目中具有外部依赖性的每个类仍然被破坏.

java eclipse maven java-9 module-path

6
推荐指数
1
解决办法
2920
查看次数

如何在ant build.xml中将java11设置为模块路径

预先感谢,谁将帮助我。

故事:到目前为止,我的应用程序正在使用JDK8,但是现在我正在将应用程序迁移到Open JDK11IVY用作依赖项管理器和Ant构建工具。

问题:我在eclipse中遇到了编译时问题javax,但是后来我将构建路径中的JRE lib从classpath更改为Modulepath。现在一切正常。但是,现在的主要问题是,在运行antbuild.xml使用Ant,这仍然给我相同的编译时错误。我想,我知道该怎么办,但是我不知道该怎么办。我必须在中的Open JDK11某处添加模块路径antbuild.xml

主要问题:如何Open JDK11antbuild.xml(基本蚂蚁构建文件)中设置为模块路径。

如果问题仍然无法理解,请告诉我。

java ant ivy module-path openjdk-11

6
推荐指数
1
解决办法
229
查看次数