我正在开发一个小型库,出于明显的原因,我想使用所有Java 11功能(我现在猜不到的模块除外)来生成代码,但是我希望该库与Java 8及更高版本兼容。
当我尝试这个:
javac -source 11 -target 1.8 App.java
Run Code Online (Sandbox Code Playgroud)
我收到以下消息:
warning: source release 11 requires target release 11
Run Code Online (Sandbox Code Playgroud)
...当我查看字节码时,我看到该类的版本为0x37(Java 11):
$ xxd App.class
00000000: cafe babe 0000 0037 ...
Run Code Online (Sandbox Code Playgroud)
Java 8无法加载它:
Exception in thread "main" java.lang.UnsupportedClassVersionError: App has been
compiled by a more recent version of the Java Runtime (class file version 55.0),
this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at …Run Code Online (Sandbox Code Playgroud) 我有一个Google AppEngine Java项目设置,调用BigQuery来显示查询作业的结果.我在这里可以找到我使用的示例代码和说明.该应用程序从我的开发计算机运行并检索查询,但是当我上传到AppEngine以在appspot.com上进行测试时,出现client_secrets.json文件(由于JavaScript URL授权,dev和appspot.com的不同文件)无法使用以下代码段:
static GoogleClientSecrets getClientCredential() throws IOException {
if (clientSecrets == null) {
clientSecrets = GoogleClientSecrets.load(JSON_FACTORY,
new InputStreamReader(new FileInputStream(
new File("WEB-INF/client_secrets.json"))));
Preconditions.checkArgument(!clientSecrets.getDetails().getClientId().startsWith("Enter ")
&& !clientSecrets.getDetails().getClientSecret().startsWith("Enter "),
"Enter Client ID and Secret from https://code.google.com/apis/console/?api=bigquery "
+ "into bigquery-appengine-sample/src/main/resources/client_secrets.json");
}
return clientSecrets;
Run Code Online (Sandbox Code Playgroud)
}
这是我的appengine-web.xml资源文件定义:
<resource-files>
<include path="**" />
</resource-files>
Run Code Online (Sandbox Code Playgroud)
client_secrets.json文件在我的war文件中正确打包.我得到的错误是:
> /
Uncaught exception from servlet
java.io.FileNotFoundException: /base/data/home/apps/s~tactile-reason-849/1.385872137632330782/WEB-INF/client_secrets.json (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:171)
at com.google.api.client.sample.bigquery.appengine.dashboard.ServiceUtils.getClientCredential(ServiceUtils.java:71)
at com.google.api.client.sample.bigquery.appengine.dashboard.ServiceUtils.newFlow(ServiceUtils.java:103)
at com.google.api.client.sample.bigquery.appengine.dashboard.MainServlet.initializeFlow(MainServlet.java:125)
at com.google.api.client.extensions.servlet.auth.oauth2.AbstractAuthorizationCodeServlet.service(AbstractAuthorizationCodeServlet.java:124)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) …Run Code Online (Sandbox Code Playgroud) 为内部类创建扩展函数时,如何从内部类访问外部作用域?
例子
class A {
inner class B {
fun own() = this@A
}
}
Run Code Online (Sandbox Code Playgroud)
此代码按预期编译和执行。
当我添加以下扩展功能时
fun A.B.ext() = this@A
Run Code Online (Sandbox Code Playgroud)
编译失败
Error:(7, 22) Kotlin: Unresolved reference: @A
Run Code Online (Sandbox Code Playgroud)
我阅读了限定 this的文档,它简要提到了扩展功能,但没有任何示例。
是否可以从扩展函数访问外部作用域?
我有一个基于对弹簧导向一个Dockerfile 泊坞窗.我的应用程序消耗一些私有数据,所以我想通过环境变量传递这些参数.当我运行一个docker容器时:
docker run -p 8080:8080 -t myname/myapplication --env-file=~/env.list
Run Code Online (Sandbox Code Playgroud)
看来变量没有设置,应用程序看不到它们,我做错了什么?如何传递这些参数?
env.list:
ACCOUNT_ID=my_account_id
ACCOUNT_PASSWORD=my_secret_password
Run Code Online (Sandbox Code Playgroud)
我的ENTRYPOINT:
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar $APPLICATION_NAME
Run Code Online (Sandbox Code Playgroud) 我尝试建立一个简单的你好,世界 ELF对我的路由器Xiaomi Router 3g使用cmake。它运行
Linux OpenWrt 4.14.95 #0 SMP Wed Jan 30 12:21:02 2019 mips GNU/Linux
Run Code Online (Sandbox Code Playgroud)
这个想法是$(PKG_BUILD_DIR)用作目录来执行外部构建(通常通过mkdir build ; cd build ; cmake ..)
构建成功完成,当我将它安装在我的路由器上并启动它时,它失败了:
Linux OpenWrt 4.14.95 #0 SMP Wed Jan 30 12:21:02 2019 mips GNU/Linux
Run Code Online (Sandbox Code Playgroud)
当我构建ELF没有cmake(
include $(INCLUDE_DIR)/cmake.mk,$(CP) ...该define Build/Prepare部分中的 行define Build/Compile部分),它工作得很好:它打印Hello, World! .
日志文件在 …
我是C编程语言的初学者,我被赋予这个任务来编写一个程序来计算自然数的平方根,而不使用math.h任何其他库函数,除了stdio.h.
看到我们int一直在使用,所以对于非方数,我们找到n的平方根的底限.现在我制作了这个程序,但它只适用于完美的正方形,但对于非正方形,它不起作用.我在这里引用它,我希望有一些方法可以修改它.
#include <stdio.h>
main()
{
int a;
scanf("%d", &a);
int s = 1, l = a, mid = 0;
while(s < l)
{
mid=(s + l)/2;
if((mid * mid) == a)
{
break;
}
else if ((mid * mid) < a)
{
s = mid + 1;
}
else
{
l = mid;
}
}
printf("%d", mid);
}
Run Code Online (Sandbox Code Playgroud)
非常感谢您的帮助,请尽可能纠正我.
编辑:很抱歉给您带来不便.
我想从SQL 2008 R2中维护的数据库中的表中更新1列.
整个列包含相同的数据类型int值,我想更改为相同int数据类型的不同值.
我们什么时候在SET语句中使用单撇号以及何时避免或不使用它?
UPDATE TABLENAME SET COLUMNNAME = X
要么
UPDATE TABLENAME SET COLUMNNAME = 'X'
感谢任何建议/建议.谢谢.