小编Gra*_*ade的帖子

在maven中没有main.java的包名称

我使用标准的Maven目录布局在Eclipse中开发我的项目.源位于src/main/java/com/mycompany目录中.并且需要将我的源类放在main.java.com.mycompany包中.当我构建可执行jar文件时,我必须在Manifest.MF中定义主类,如:

    Main-Class: main.java.com.mycompany.MyMainClass
Run Code Online (Sandbox Code Playgroud)

但是我在很多例子中看到(比如在maven-assembly-plugin或maven-jar-plugin中配置mainClass属性),没有main.java部分指定了类名.我只想拥有

    Main-Class: com.mycompany.MyMainClass
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚我是如何实现这一点的,因为我在Maven中完全是新手.

java eclipse maven

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

意外的"瞬态"构造函数修饰符

我在使用反射时发现了一些有趣的东西.我试图检索简单类及其修饰符的构造函数.

public class Test {
    public Test(Object... args) {}
}
Run Code Online (Sandbox Code Playgroud)

以下是检索构造函数修饰符的代码:

Class<?> clazz = Test.class;
Constructor<?>[] ctors = clazz.getDeclaredConstructors();
for (Constructor<?> ctor : ctors) {        
    int mod = ctor.getModifiers();
    /*if not package-private modifier*/
    if(mod!=0) {
        System.out.println( Modifier.toString(mod)));
    }
}
Run Code Online (Sandbox Code Playgroud)

结果是:

    public transient  
Run Code Online (Sandbox Code Playgroud)

如果我传递给构造函数不是变量参数,而只是数组,那没关系.

public class Test {
    public Test(Object[] args) {}
}
Run Code Online (Sandbox Code Playgroud)

结果是:

    public  
Run Code Online (Sandbox Code Playgroud)

无论构造函数修饰符(public,protected,private)或参数类型(基元或引用)如何,都会发生相同的情况.怎么可能,而"transient"对构造函数来说不是有效的修饰符?

java reflection jvm

11
推荐指数
1
解决办法
628
查看次数

HttpServletResponse.sendError()不会重定向到错误页面

我在doFilter()方法中有以下代码,在这里我获得了应用程序作用域bean.

    if (request.getServletContext().getAttribute("resource")==null) {
        response.sendError(503);
        return;
    }
Run Code Online (Sandbox Code Playgroud)

我将503代码映射到web.xml中的特定错误页面.如果发生错误,我真的会在浏览器中获得错误页面的内容.但地址栏中的地址不会因错误页面地址而改变:请求的servlet的地址离开那里.这是正确的行为吗?我想明确告知重定向到错误页面.是否只能使用sendRedirect()?

java servlets

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

标签 统计

java ×3

eclipse ×1

jvm ×1

maven ×1

reflection ×1

servlets ×1