社区首页 >问答首页 >如何使用TDB和reasoner配置Apache Fuseki?删除数据集上的错误

如何使用TDB和reasoner配置Apache Fuseki?删除数据集上的错误
EN

Stack Overflow用户
提问于 2019-10-23 07:49:01
回答 1查看 2.1K关注 0票数 1

上下文

尽管有很多关于这个问题的问题/答案,但我仍然很难配置Apache .

我正在尝试配置一个Apache Fuseki实例,并激活了TDB和OWL推理器,用于测试我的应用程序。我需要创建一个数据集,执行我的测试,并以编程的方式删除数据集。

设置

我使用stain/jena-fuseki码头映像运行Apache。

我在3.10.0版中运行了Jena Fuseki。

代码语言:javascript
代码运行次数:0
复制
bash-4.3# ./fuseki-server -version
Jena:       VERSION: 3.10.0
Jena:       BUILD_DATE: 2018-12-30T15:45:57+0000
TDB:        VERSION: 3.10.0
TDB:        BUILD_DATE: 2018-12-30T15:45:57+0000
Fuseki:     VERSION: 3.10.0
Fuseki:     BUILD_DATE: 2018-12-30T15:45:57+0000

碱基配置

我使用折叠shiro.ini文件。我允许每个人都可以完全访问,这只是一个测试实例。

代码语言:javascript
代码运行次数:0
复制
bash-4.3# cat /fuseki/shiro.ini 

[main]
# Development
ssl.enabled = false
plainMatcher=org.apache.shiro.authc.credential.SimpleCredentialsMatcher
iniRealm.credentialsMatcher = $plainMatcher

[users]
admin=mysupersecurepassword

[roles]

[urls]
## Control functions open to anyone
/$/status = anon
/$/ping   = anon

# Everything else
/**=anon

我使用默认的config.ttl文件:

代码语言:javascript
代码运行次数:0
复制
bash-4.3# cat /fuseki/config.ttl 
# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0
## Fuseki Server configuration file.

@prefix :        <#> .
@prefix fuseki:  <http://jena.apache.org/fuseki#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ja:      <http://jena.hpl.hp.com/2005/11/Assembler#> .

[] rdf:type fuseki:Server ;
   .

我想做什么?

为了测试我的应用程序,我尝试创建一个数据集,执行测试,并以编程方式删除数据集。为此,我使用Fuseki HTTP管理协议

我遵循以下步骤:

  • POST /$/datasets创建数据集。
  • POST /dataset_name/data上传数据文件。
  • (执行我的应用程序测试)
  • POST /dataset_name?update=DROP+ALL删除数据。
  • DELETE /$/datasets/dataset_name删除数据集。

步骤1:

使用卷发:

代码语言:javascript
代码运行次数:0
复制
curl -F 'files[]=@dataset.ttl' http://localhost:3030/$/datasets

我使用以下dataset.ttl文件:

代码语言:javascript
代码运行次数:0
复制
@prefix fuseki: <http://jena.apache.org/fuseki#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix : <#> .


# Custom code
tdb:GraphTDB rdfs:subClassOf ja:Model .

# Setup service
:service rdf:type fuseki:Service ;
    rdfs:label                          "TDB dataset_name" ;
    fuseki:name                         "dataset_name" ;
    fuseki:dataset                      :dataset ;
    fuseki:serviceQuery                 "query", "sparql" ;
    fuseki:serviceUpdate                "update" ;
    fuseki:serviceUpload                "upload" ;
    fuseki:serviceReadWriteGraphStore   "data" ;
    fuseki:serviceReadGraphStore        "get" ;
.

# Setup Assembler model with reasoner
:dataset rdf:type ja:RDFDataset;
    ja:defaultGraph :modelInf ;
.
:modelInf rdf:type ja:InfModel;
    ja:baseModel :tdbGraph ;
    ja:reasoner [ 
        ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner> 
    ] ;
.

# TDB dataset used for RDF storage
:tdbGraph rdf:type tdb:GraphTDB;
    tdb:location "/fuseki/databases/dataset_name" ;
.

Jena Fuseki日志

代码语言:javascript
代码运行次数:0
复制
[2019-10-23 14:41:00] Admin      INFO  [6] POST http://localhost:3030/$/datasets
[2019-10-23 14:41:00] Admin      INFO  [6] Filename: dataset.ttl, Content-Type=application/octet-stream, Charset=null => Turtle : Count=19 Triples=19 Quads=0
[2019-10-23 14:41:00] Admin      INFO  [6] Create database : name = /dataset_name
[2019-10-23 14:41:02] Admin      INFO  [6] 200 OK (1.894 s)

一切都好:P

第2步:

使用卷发:

代码语言:javascript
代码运行次数:0
复制
curl -F 'files[]=@data.rdf' http://localhost:3030/dataset_name/data
{ 
  "count" : 1524 ,
  "tripleCount" : 1524 ,
  "quadCount" : 0
}

Jena Fuseki日志

代码语言:javascript
代码运行次数:0
复制
[2019-10-23 14:44:52] Fuseki     INFO  [7] POST http://localhost:3030/dataset_name/data
[2019-10-23 14:44:53] Fuseki     INFO  [7] Filename: data.rdf, Content-Type=application/octet-stream, Charset=null => RDF/XML : Count=1524 Triples=1524 Quads=0
[2019-10-23 14:44:54] Fuseki     INFO  [7] 200 OK (1.858 s)

一切都好:P

步骤3:

测试我的应用程序(这里没用)

第4步:

使用卷发:

代码语言:javascript
代码运行次数:0
复制
curl -d "update=DROP+ALL" -X POST http://localhost:3030/dataset_name/update
...
Update succeeded
...

Jena Fuseki日志

代码语言:javascript
代码运行次数:0
复制
[2019-10-23 15:04:13] Fuseki     INFO  [67] POST http://localhost:3030/dataset_name/update
[2019-10-23 15:04:14] Fuseki     INFO  [67] 200 OK (268 ms)

一切都好:P

第5步:

使用卷发:

代码语言:javascript
代码运行次数:0
复制
curl -X DELETE http://localhost:3030/$/datasets/dataset_name

Jena Fuseki日志

代码语言:javascript
代码运行次数:0
复制
[2019-10-23 15:10:17] Admin      INFO  [92] DELETE http://localhost:3030/$/datasets/dataset_name
[2019-10-23 15:10:17] Admin      INFO  [92] DELETE ds=/dataset_name
[2019-10-23 15:10:17] Server     INFO  Shutting down data service for [, data, upload, query, get, update, sparql]
[2019-10-23 15:10:17] Admin      WARN  [92] RC = 500 : Not in a transaction
org.apache.jena.tdb.transaction.TDBTransactionException: Not in a transaction
        at org.apache.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:140)
        at org.apache.jena.tdb.transaction.DatasetGraphTransaction.getDatasetGraphToQuery(DatasetGraphTransaction.java:86)
        at org.apache.jena.tdb.store.GraphTxnTDB.getDatasetGraphTDB(GraphTxnTDB.java:51)
        at org.apache.jena.tdb.store.GraphTDB.sync(GraphTDB.java:128)
        at org.apache.jena.tdb.store.GraphTDB.close(GraphTDB.java:133)
        at org.apache.jena.reasoner.BaseInfGraph.close(BaseInfGraph.java:445)
        at org.apache.jena.reasoner.rulesys.BasicForwardRuleInfGraph.close(BasicForwardRuleInfGraph.java:360)
        at org.apache.jena.reasoner.rulesys.FBRuleInfGraph.close(FBRuleInfGraph.java:710)
        at org.apache.jena.sparql.core.DatasetGraphMapLink.close(DatasetGraphMapLink.java:199)
        at org.apache.jena.fuseki.server.DataService.expel(DataService.java:223)
        at org.apache.jena.fuseki.server.DataService.shutdown(DataService.java:199)
        at org.apache.jena.fuseki.mgt.ActionDatasets.execDeleteItem(ActionDatasets.java:360)
        at org.apache.jena.fuseki.ctl.ActionContainerItem.execDelete(ActionContainerItem.java:105)
        at org.apache.jena.fuseki.ctl.ActionContainerItem.perform(ActionContainerItem.java:64)
        at org.apache.jena.fuseki.ctl.ActionCtl.executeLifecycle(ActionCtl.java:68)
        at org.apache.jena.fuseki.ctl.ActionCtl.executeAction(ActionCtl.java:62)
        at org.apache.jena.fuseki.ctl.ActionCtl.execCommonWorker(ActionCtl.java:53)
        at org.apache.jena.fuseki.servlets.ActionBase.doCommon(ActionBase.java:74)
        at org.apache.jena.fuseki.ctl.ActionContainerItem.doDelete(ActionContainerItem.java:52)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655)
        at org.apache.jena.fuseki.servlets.FusekiFilter.doFilter(FusekiFilter.java:101)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
        at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
        at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
        at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
        at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
        at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
        at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
        at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
        at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
        at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
        at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
        at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
        at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
        at org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285)
        at org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248)
        at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
        at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:690)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        at org.eclipse.jetty.server.Server.handle(Server.java:503)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
        at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
        at java.lang.Thread.run(Thread.java:745)
[2019-10-23 15:10:17] Admin      INFO  [92] 500 Not in a transaction (65 ms)

这就是问题所在。有人能帮我解决这个问题吗?

思想/尝试

对于默认的dataset配置文件,我尝试使用相同的过程,但没有错误。因此,我认为这来自数据集配置文件。

在这里,我称之为默认数据集配置文件:

代码语言:javascript
代码运行次数:0
复制
@prefix :      <http://base/#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix tdb2:  <http://jena.apache.org/2016/tdb#> .
@prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .

:service_tdb_all        a                   fuseki:Service ;
        rdfs:label                          "TDB2 dataset_name" ;
        fuseki:dataset                      :tdb_dataset_readwrite ;
        fuseki:name                         "dataset_name" ;
        fuseki:serviceQuery                 "query" , "sparql" ;
        fuseki:serviceReadGraphStore        "get" ;
        fuseki:serviceReadWriteGraphStore   "data" ;
        fuseki:serviceUpdate                "update" ;
        fuseki:serviceUpload                "upload" .

:tdb_dataset_readwrite  a                   tdb2:DatasetTDB2 ;
        tdb2:location                       "/fuseki/databases/dataset_name" .

对于如何正确配置Jena Fuseki,我找不到任何清晰的文档。许多例子可以找到,但日期从一些年,不知道他们是否仍然是最新的。也没有解释它们到底是如何工作的,所以很难把它加到具体的案例中。

如果有任何文档/教程解释什么是"ja:RDFDataset“、"ja:InfModel”和其他"ja:things“,以及它们是如何工作的,我们将不胜感激。

我仍然从本体/triplestore/链接数据开始,而这些文档并不是最容易阅读的:

我尝试了不同的配置示例,并且总是在步骤1或步骤5中出现错误。

示例

配置:

代码语言:javascript
代码运行次数:0
复制
@prefix : <#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .

[] rdf:type fuseki:Server ;
    fuseki:services (
        <#service>
    ) .

## ---------------------------------------------------------------
## Service with only SPARQL query on an inference model.
## Inference model base data in TDB.

<#service> rdf:type fuseki:Service ;
    fuseki:name "dataset_name" ;
    fuseki:serviceQuery "query" , "sparql" ;
    fuseki:serviceUpdate "update" ;
    fuseki:serviceUpload "upload" ;
    fuseki:serviceReadWriteGraphStore "data" ;
    fuseki:serviceReadGraphStore "get" ;
    fuseki:dataset <#dataset>  ;
    .

<#dataset> rdf:type ja:RDFDataset ;
    ja:defaultGraph <#model> ;
    . 

<#model> rdf:type ja:InfModel ;
    ja:baseModel <#tdbGraph> ;
    ja:reasoner [
        ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner> ;
    ] ;
    .

<#tdbGraph> rdf:type tdb:GraphTDB ;
    tdb:dataset <#tdbDataset> ;
    .

<#tdbDataset> rdf:type tdb:DatasetTDB ;
    tdb:location "/fuseki/databases/dataset_name" ;
    .

步骤1出错。

Fuseki日志:

代码语言:javascript
代码运行次数:0
复制
[2019-10-23 15:20:51] Admin      INFO  [93] POST http://localhost:3030/$/datasets
[2019-10-23 15:20:51] Admin      INFO  [93] Filename: dataset.ttl, Content-Type=text/turtle, Charset=null => Turtle : Count=23 Triples=23 Quads=0
[2019-10-23 15:20:51] Admin      INFO  [93] Create database : name = /dataset_name
[2019-10-23 15:20:51] Admin      WARN  [93] RC = 500 : cannot find a most specific type for :tdbGraph, which has as possibilities: ja:Model tdb:GraphTDB.
org.apache.jena.assembler.exceptions.AmbiguousSpecificTypeException: cannot find a most specific type for :tdbGraph, which has as possibilities: ja:Model tdb:GraphTDB.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-24 06:53:47

完整服务器使用其中一个模板为通过UI或协议创建的数据库提供删除。无法以这种方式删除推送服务器的任意配置文件;即使它们可以从服务器断开链接,也可能会留下一些不利于测试的内容(它们是任意的附件文件)。

对于测试,有一种更简单的方法。为每个测试拆分一个服务器,要么是脚本化的,要么是来自Java (JUnit等)。服务器的"Fuseki“版本启动和停止非常快。因此,使用所需的配置启动服务器--如果数据相当小,您可以使用内存中的TDB数据库(位置是"--mem--")来处理数据。

这将在服务器退出时完成清除,从而使测试完全隔离。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58526678

复制
相关文章
Linux在windows上共享目录
一、linux安装samba yum -y install samba 二、备份配置文件 cp /etc/samba/smb.conf /etc/samba/smb.conf.backup 三、添加访
静谧星空TEL
2021/04/27
4.4K0
Linux在windows上共享目录
在Windows系统上的Linux容器
ghplvh
2018/01/09
4.9K0
在 Linux or windows 上后台运行服务
  此时可以访问 http://ip:8000 验证服务是否成功启动了(详细操作见另一篇文章-Python 一行搭建文件服务器)
我是胖虎啊
2022/06/27
3.2K0
在 Linux or windows 上后台运行服务
在Windows上搭建Go开发环境
在Windows上搭建Go开发环境
乐百川
2018/01/09
1.5K0
在Windows上搭建Go开发环境
BML CodeLab重磅更新:在Windows上可原生Linux AI开发
自从微软发布 WSL2(Windows Subsystem for Linux 2)之后,机器学习开发者、数据科学家就可以在 Windows 上做原生 Linux 开发了。
用户1386409
2021/03/09
1.2K0
BML CodeLab重磅更新:在Windows上可原生Linux AI开发
Linux的GUI程序在Windows上使用
一,在linux机上安装xorg-x11-xauth 如果没装,启动GUI程序会提示Canno open display。 方法: yum install xorg-x11-xauth 二、打开linux服务器的sshd的X11转发功能: vi /etc/ssh/sshd_config 配置: X11Forwarding yes 三、在Windows客户端上安装X11 Server程序 Xming是运行于Windows下的X 服务器,下载Xming:http://sourceforge.net/pro
韩伟
2018/03/05
4.5K0
Linux的GUI程序在Windows上使用
快速在 Windows 上搭建 Jekyll 开发环境
发布于 2018-03-04 05:30 更新于 2018-08-12 06:50
walterlv
2018/09/18
1.1K0
快速在 Windows 上搭建 Jekyll 开发环境
在 Windows 上使用 Python 进行 web 开发
我们建议在生成 web 应用程序时在 WSL 上安装 Python。 Python web 开发的许多教程和说明都是针对 Linux 用户编写的, 并使用基于 Linux 的打包和安装工具。 大多数 web 应用还部署在 Linux 上, 因此, 这将确保你的开发环境与生产环境之间的一致性。
葡萄城控件
2019/08/03
6.9K0
Flutter在Windows上搭建Android开发环境
Flutter 是谷歌基于 Dart 语言开发的一款开源、 免费、跨平台的移动端UI 框架,可以让我们快速的在 Android 和iOS 上构建高质量 App,它最大的特点就是跨平台、 以及高性能。
越陌度阡
2020/12/16
1.5K0
Flutter在Windows上搭建Android开发环境
windows上开发linux程序完美环境搭建
然后启动安装centos即可,注意安装过程中,需要把网络配置固定IP,避免每次启动虚拟机IP飘走。
mingjie
2022/05/12
2.2K0
windows上开发linux程序完美环境搭建
怎样在Linux上开发vue项目
将node.js的node可执行可执行文件与npm链接所在目录添加到环境变量,在文件/etc/profile文件末尾添加以下内容
极客开发者
2022/01/18
2.1K0
怎样在Linux上开发vue项目
WampServer – 在 Windows 上轻松搭建 PHP 开发环境
WampServer 是一个 Windows 上的 Apache + PHP + MySQL 开发环境。作为一名 WordPress 主题开发者,我一直使用 WampServer 搭建本地 PHP 开发环境。 WampServer 的安装流程十分简单,一路 Next 就行。
慕白
2018/08/03
1.3K0
WampServer – 在 Windows 上轻松搭建 PHP 开发环境
Linux上搭建Git服务,客户端在Windows
服务器 CentOS Linux release 7.4.1708 (Core) + git(version 1.8.3.1) 客户端 Windows7 + git(Git-2.9.3.2-64-bit.exe)
飞狗
2018/12/18
3K0
如何使用Homebrew在Linux和Windows上安装软件
长期以来,Homebrew软件一直是Mac用户的便捷工具,但仅适用于Mac用户。 该应用程序增加了Linux风格的软件包管理,使用户可以轻松安装命令行实用程序。 现在,在2.0.0及更高版本中,该应用程序不再是Mac专有的。
用户8704998
2021/06/08
3.8K0
在Windows 10上安装TensorFlow及PyCharm开发环境[通俗易懂]
有时候在查看官方文档时,常常看到很多的分支,所以作为开发者我们都喜欢把最佳实践总结出来。下面一起来看看如何在Windows 10上安装一个TensorFlow和PyCharm开发环境。
全栈程序员站长
2022/09/27
1.6K0
在Windows 10上安装TensorFlow及PyCharm开发环境[通俗易懂]
在 Windows 上安装 Composer
(2) 选中PHP安装目录下的php.exe,PHP的安装路径在环境变量 Path 中,则会自动选中,否则需要手动选中
很酷的站长
2023/02/17
2.1K0
在 Windows 上安装 Composer
MongoDB - 在Windows上安装
1 下载MongoDB社区版, 下载链接 http://www.mongodb.org/downloads?_ga=1.129742796.1997610832.1481940266 2 安装Mong
我思故我在
2018/05/11
2.3K0
在Windows上安装Jenkins
apache-tomcat/bin目录下的startup.bat在windows上启动。
清菡
2020/12/02
2.4K0
在Windows上安装Jenkins
在 Windows 玩 Linux!
之前了解过一些适用于linux的Windows子系统,最近又听人提起,于是在自己的Windows 10专业版上安装了一个Ubuntu。运行起来还真方便,以后在windows上开发Linux程序就不需要安装桌面虚拟化应用了。下面讲下具体的步骤。
Rookie
2020/04/23
4.2K0
在 Windows 玩 Linux!
怒删虚拟机,FPGA开发新宠-几步在Windows上安装桌面化Linux
Linux上运行Vivado这类EDA工具要比Window上快很多,大概就是优化的问题,所以选择Linux上开发是一个比较好的选择(主要是免费)。国内习惯了Win系统,所以用Linux比较少,那么有没有既可以在Windows上做一些文档之类的编写办公,同时在Linux上做FPGA开发呢?
碎碎思
2023/02/14
2.1K0
怒删虚拟机,FPGA开发新宠-几步在Windows上安装桌面化Linux

相似问题

如何在gatling模拟中运行多个空手道特征文件?

126

如何在Python中将参数传递给类?

11

如何在Gatling脚本中将变量传递给.get方法

10

如何在laravel中将数组传递给特征?

16

如何在Gatling中将地图列表传递给pebble模板?

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文