我想得到方法的调用者类,即
class foo{
bar();
}
Run Code Online (Sandbox Code Playgroud)
在方法栏中,我需要获取类名foo,我找到了这个方法:
Class clazz = sun.reflect.Reflection.getCallerClass(1);
Run Code Online (Sandbox Code Playgroud)
但是,即使getCallerClass是public,当我试着调用它时,Eclipse说:
访问限制:由于对所需库C:\ Program Files\Java\jre7\lib\rt.jar的限制,无法访问Reflection类型的方法getCallerClass()
还有其他选择吗?
当我使用JDK 1.7.0在OS X上编译Spring JDBC源代码时,我收到此警告:
warning: CachedRowSetImpl is internal proprietary API and may be removed in a future release
Run Code Online (Sandbox Code Playgroud)
如何在编译期间禁止显示警告消息?
我已经知道并使用Java的@SuppressWarning注释.我正在寻找具体用法来抑制我所描述的警告.
我的问题具体是,在这行代码中:
@SuppressWarnings("valuegoeshere")
Run Code Online (Sandbox Code Playgroud)
应该用"valuegoeshere"替换什么?
编辑:人们,我知道最好避免导致警告的代码.通常这将是我的方法.但是我在这里编译第三方代码,我不想重写.我只想添加正确的注释来抑制警告,以便我可以实际做些什么的警告不会被埋没.
我编译它时有一个Java程序我得到以下错误
[javac] ...\MyClass.java:33: package com.sun.image.codec.jpeg does not exist
[javac] import com.sun.image.codec.jpeg.*;
[javac] ^
Run Code Online (Sandbox Code Playgroud)
我能做什么 ?
现在不推荐使用com.sun软件包,编写映像文件的正确方法是什么.
如果使用Sun的专有Java类,编译器将显示警告.我认为使用这些类通常是一个坏主意.我在某处读到了这个.但是,除了警告之外,还有任何根本原因,你不应该使用它们吗?
我一直com.sun.xml.bind.marshaller.NamespacePrefixMapper在我的项目中使用,我在JDK 6u17中没有遇到任何问题.现在我刚刚更新到6u18,我看到它已被替换为com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper.但是,如果我导入此类并尝试编译我的类,我会收到错误:
package com.sun.xml.internal.bind.marshaller does not exist import com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper;
我可以通过NetBeans代码完成功能访问此包,NetBeans不会突出显示错误代码.
任何帮助,将不胜感激!
我想编译使用一些Java不推荐的"sun"包的Java代码,Gradle编译任务因此错误而失败
error: package com.sun.xml.internal.ws.developer does not exist
Run Code Online (Sandbox Code Playgroud)
我正在使用Hotspot JDK,我可以在那里看到这个包(所以它实际存在 - 在rt.jar文件中)我也尝试将rt.jar本身添加到Gradle依赖项中:
compile files( 'C:/Program Files/Java/jdk1.7.0_05/jre/lib/rt.jar')
Run Code Online (Sandbox Code Playgroud)
但没有效果
这是我的gradle -v输出:
------------------------------------------------------------
Gradle 1.2
------------------------------------------------------------
Gradle build time: Streda, 2012, september 12 10:46:02 UTC
Groovy: 1.8.6
Ant: Apache Ant(TM) version 1.8.4 compiled on May 22 2012
Ivy: 2.2.0
JVM: 1.7.0_05 (Oracle Corporation 23.1-b03)
OS: Windows 7 6.1 amd64
Run Code Online (Sandbox Code Playgroud)
我还尝试将jaxws-rt.jar添加到classpath中 - 两者都没有效果
我真的很感激任何帮助
谢谢
可能重复:
使用Java生成证书,公钥和私钥
我需要在运行时生成自签名证书,签名并导入Java密钥库.我可以通过命令行中的"keytool"和"openssl"以下列方式执行此操作:
keytool -import -alias root -keystore keystore.txt -file cacert.pem
keytool -genkey -keyalg RSA -keysize 1024 -alias www.cia.gov -keystore keystore.txt
keytool -keystore keystore.txt -certreq -alias www.cia.gov -file req.pem
openssl x509 -req -days 3650 -in req.pem -CA cacert.pem -CAkey cakey.pem -CAcreateserial -out reqsigned.pem
keytool -import -alias www.cia.gov -keystore keystore.txt -trustcacerts -file reqsigned.pem
Run Code Online (Sandbox Code Playgroud)
当然,我可以使用keytool和openssl二进制文件发送我的应用程序并从Java执行上述命令,但我正在寻找一种更清晰的方法,这将允许我使用纯Java完成上述所有操作.
我可以使用的任何库?
我有一个用 JAX-WS 编写的 SOAP 客户端。我的代码是这样的:
UpdateSub port = service.getUpdateSub();
port.soapMethod(parameter);
Run Code Online (Sandbox Code Playgroud)
我想要针对与 SOAP 服务器的连接被拒绝或超时的情况提供特定的代码。我测试了这些情况,发现soapMethod 抛出ClientTransportException。ClientTransportException 来自 sun 包,因此如果我导入它以捕获它,编译器会抛出此错误:
包 com.sun.xml.internal.ws.client 不存在
我按照Karmakaze 建议的方式解决了这个问题
据我了解,这只是一种解决方法,Oracle 不建议这样做。那么,在没有编译器参数的情况下捕获此类异常的正确方法是什么?
我需要将哪些选项添加到maven构建或java运行时才能访问内部sun.security类?来自Akamai的Java代码在OSGI包中需要访问内部sun.security类.Apache Felix控制台为OSGI包提供错误:
sun.awt.image.codec -- Cannot be resolved
sun.io -- Cannot be resolved
sun.misc -- Cannot be resolved
sun.rmi.rmic -- Cannot be resolved
sun.security.action -- Cannot be resolved
sun.security.ec -- Cannot be resolved
sun.security.internal.interfaces -- Cannot be resolved
...
Run Code Online (Sandbox Code Playgroud)
我看了这篇关于使用内部sun类的文章,但它只引用了javac.我的maven构建开始如下:
<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>
<artifactId>cdncache</artifactId>
<packaging>bundle</packaging>
<name>NCDN Cache</name>
<description>Classes and interfaces to expire resource from the Akamai CDN cache [build:${build.number}]\
</description>
<version>1.0-${build.number}</version>
<properties>
<!-- Skip tests, so maven execution is faster. -->
<maven.test.skip>true</maven.test.skip>
<file.encoding>utf-8</file.encoding>
</properties>
<build> …Run Code Online (Sandbox Code Playgroud) NetBeans似乎无法解析jdk.internal.*类,但其他内部API(即com.sun.*)没有解决问题.
编译错误:"jdk.internal.org.objectweb.asm.ClassReader不存在"
(此包存在于rt.jar中)
这是NetBeans的错误吗?
NetBeans:8.0(Build 201403101706)
Java:1.8.0_20-ea; Java HotSpot(TM)64位服务器VM 25.20-b20
系统:在amd64上运行的Windows 7版本6.1
java ×9
apache-felix ×1
certificate ×1
gradle ×1
javac ×1
jaxb ×1
keytool ×1
maven ×1
netbeans ×1
osgi ×1
self-signed ×1
soap ×1
ssl ×1
sun ×1
web-services ×1